java - 来自前台服务的开放活动
问题描述
我有一个需要 24/7 运行的应用程序。我知道android操作系统在后台一段时间后会杀死我的应用程序的进程,所以我有一个前台服务是粘性的。现在的问题是,我希望服务检查我的应用程序是否正在运行,如果没有,那么我希望服务启动应用程序。可能吗?
解决方案
在 onStop 之后,您的活动将不可见。如果您想看到您的活动正在运行,即在前台;
public boolean isForeground(String myPackage) {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager.getRunningTasks(1);
ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
return componentInfo.getPackageName().equals(myPackage);
}
如果它不在前台,则可以在下面使用,否则;
Intent i = new Intent(this, MyMainActivity.class);
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
- 笔记; 另一种方法,您可以从您的活动向您的服务发送有关其状态的消息
- 或者,使用偶像的想法] 2 ;
推荐阅读
- javascript - 如何使用 Razorpay Route 将美元金额转入关联账户
- javascript - CMD 和 VS Code 在同时检查时显示不同版本的角度,在安装过程中我可能会遗漏什么吗?
- anylogic - 如何在不强制转换代理类型的情况下在资源单元上使用 .getServicedEntity() 方法?
- emacs - 组织时钟表报告的时间格式
- javascript - 如何在 JS 中将此奇数字符串(h:m dd/m/yyyy)转换为日期时间对象
- ios - Swift UI Animate 改变宽度不起作用
- python - 使用交互式 ipython 笔记本运行 Tkinter
- google-cloud-run - Google Cloud Tasks 未分派 HTTP 请求
- node.js - 使用数组和 httpClient 以角度将 json 数据显示到列表中
- ruby-on-rails - Rails belongs_to and has_many of the same model