火力地堡数据库更新不工作时,应用程序最小化

问题描述:

我已经做到了这一点:火力地堡数据库更新不工作时,应用程序最小化

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      currentLatitude = Double.valueOf(intent.getStringExtra("latitude")); 
      currentLongitude = Double.valueOf(intent.getStringExtra("longitude")); 


      if(!java.util.Objects.equals(m_Text, "")) {//if ph number not blank 
       User user = new User(); 

       user.setLatitude(currentLatitude); 
       user.setLongitude(currentLongitude); 
       // user.setPhone(m_Text); 
       mFirebaseInstance.getReference(m_Text).setValue(user); 


      } 




     } 
    }; 

预期,不论应用程序是在前台或不联合坐标被更新,但mFirebaseInstance.getReference(m_Text).setValue(user);不发帖时应用火力地堡被最小化,否则正常工作。有关如何实现它的任何解决方案?

+2

可能是由Doze或[App-Standby]造成的(https://developer.android.com/training/monitoring-device-state/doze-standby.html#understand_app_standby)。当你观察到这种行为是插入设备?屏幕在吗?该设备的API级别是什么? –

+0

无论是否插入设备(api 24和23均在真实设备上测试过),app都处于前景/活动状态,或者处于部分休眠状态,接收机会根据断点观察定期收到更新的变量,但只有当应用程序处于前台时,Firebase方法的更新才有效......是否有任何解决方法? –

+0

由于这里没有专家提出的解决方案,或者它们可能被他们忽略或忽视,所以我想问一下,如果可以的话,我是否可以将整个firebase初始化和方法调用放到后台服务。任何帮助或例子,也将不胜感激。 –

我发现一段时间后的根问题,该应用程序需要设备上的背景数据权限,以便将数据发布到firebase数据库,通过Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS意图启用它/添加权限,并且它工作正常!