关闭屏幕后,有时我的应用程序活动会进入后台

时间:2019-01-08 10:49:19

标签: java android

我正在将Camera作为服务附加到活动中。还有其他服务(例如上载和Firebase)与摄像头服务一起运行。现在,我的要求是在关闭屏幕后保持服务运行。我也正在获得PARTIAL_WAKE_LOCK。该服务在最初的10或12分钟内可以完美运行。之后,该应用程序停止将任何日志发送到ADB。在设备中,该应用程序会自行进入后台。甚至onPause或onDestroy都不记录任何内容。日志只是停止进入Android Studio。要恢复正常运行,我必须再次手动打开该应用程序,

这些是我已经尝试过的东西,

1。授予获得PARTIAL_WAKE_LOCK的权限。

2。设置android:largeHeap =“ true”

3。前台服务

2 个答案:

答案 0 :(得分:0)

根据Doze mode documentation,它忽略唤醒锁。
同样从Android Pie开始,无法从后台应用程序获得摄像头访问权限。
另外,根据android开发人员指南,您必须在应用程序暂停时释放相机,因为它会阻止所有其他应用程序。

答案 1 :(得分:0)

在这种情况下,应调用

onSaveInstanceState 函数,并与您确认是否被调用,然后在延迟的情况下再次打开活动。

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
            try {
                Intent intent = new Intent(getBaseContext(), YourActivity.class);
                startActivity(intent);
                finish();
            } catch (Exception ex) { }
      }
    }, 200);

}