java - 在我关闭屏幕后,我的应用程序的活动有时会进入后台
问题描述
我将相机作为附加到活动的服务运行。上传和 Firebase 等其他服务与相机服务一起运行。现在我的要求是在我关闭屏幕后保持服务运行。我也正在获取 PARTIAL_WAKE_LOCK。这些服务在最初的 10 或 12 分钟内运行良好。之后,应用程序停止向 ADB 发送任何日志。在设备中,应用程序自行进入后台。甚至 onPause 或 onDestroy 都没有记录任何内容。日志只是停止进入 Android Studio。为了恢复正常运行,我必须再次手动打开应用程序,
这些是我已经尝试过的东西,
1.获得PARTIAL_WAKE_LOCK的权限。
2.设置android:largeHeap="true"
3.前台服务
解决方案
在这些情况下应该调用 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);
}
推荐阅读
- ios - Swift:ScrollView 根据单元格图像大小滚动
- java - 如何在存储在 mysql 的 varchar 字段中的程序中使用 utf8mb4 符号而不更改 mysql 的字段
- java - 无法使用 Apache Commons FTPClient 访问 FTP 服务器上的子文件夹
- bazel - `cc_test` 和 `bazel test` 到底是做什么的?
- c++ - 如何生成没有两个相邻连续数字的排列?
- java - Java基础,反转单词以及如何通过for循环实现
- python - Django - 从 db 过滤或在 python 中计算
- php - PHP 方法存在不起作用。如何解决?
- facebook-opengraph - 开放图元标记被标记为无效
- powershell - 一次处理 4 个 For 循环?