我正在将Camera作为服务附加到活动中。还有其他服务(例如上载和Firebase)与摄像头服务一起运行。现在,我的要求是在关闭屏幕后保持服务运行。我也正在获得PARTIAL_WAKE_LOCK。该服务在最初的10或12分钟内可以完美运行。之后,该应用程序停止将任何日志发送到ADB。在设备中,该应用程序会自行进入后台。甚至onPause或onDestroy都不记录任何内容。日志只是停止进入Android Studio。要恢复正常运行,我必须再次手动打开该应用程序,
这些是我已经尝试过的东西,
1。授予获得PARTIAL_WAKE_LOCK的权限。
2。设置android:largeHeap =“ true”
3。前台服务
答案 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);
}