我有一个Android应用程序,其服务在后台运行,执行各种客户端/服务器连接。如果显示我的应用中的任何屏幕,我如何检查正在运行的服务?如何检测我的Android应用程序是否显示?
2
A
回答
5
你可以得到正在运行的进程的列表,并检查,如果你是在前台用下面的代码:
ActivityManager actMngr = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcesses = actMngr.getRunningAppProcesses();
for (RunningAppProcessInfo pi : runningAppProcesses) {
if (getPackageName().equals(pi.processName)) {
boolean inForeground = pi.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
}
}
时请在http://developer.android.com/reference/android/app/ActivityManager.RunningAppProcessInfo.html
3
Refreshing an Activity from service when Active 几个选项:
•有活动注册在的onResume(该服务的监听对象),并在onPause(删除)
•发送私人广播,拿起由通过registerReceiver()活动时,它是在前台
•有活动提供一个“等待结果”式的PendingIntent到服务
•使用ResultRe ceiver
•使用ContentProvider的,与该活动举办到光标从供应商,服务更新提供商
看到这里https://github.com/commonsguy/cw-advandroid/tree/master/AdvServices/了几个例子。
1
要检查服务是否正在运行使用
ActivityManager manager = (ActivityManager) MyApp.getSharedApplication().getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (CTConstants.MyService_Name.equals(service.service.getClassName())) {
//Your service is running
}
}
如果您不想将此作为普通功能进行概括,请将第一行替换为
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
相关问题
- 1. 如何检测应用程序是否显示?
- 2. 如何检测我的应用程序是否是沙盒?
- 3. 如何检测Android应用程序是否是游戏?
- 4. 如何检测SELinux是否在Android应用程序中启用?
- 5. 如何检测用户是否正在查看我的应用程序(Android)
- 6. android如何检测应用程序是否在过去运行
- 7. 如何测试我的翻译是否显示在应用程序上
- 8. 如何检测我的应用程序
- 9. 如何检测我的应用程序是否正在加载数据,如果是,显示加载屏幕
- 10. android代码来检测我的android应用程序用户是否在线
- 11. 检测应用程序是否临时
- 12. 检测应用程序是否安装?
- 13. 检测我的网页是否安装了我的应用程序(Android)
- 14. 如何检测我的应用程序是否正在运行EarlGrey测试?
- 15. 是否有可能检测到Android应用程序的卸载?
- 16. 检测是否显示UICollectionViewCell
- 17. 如何检测Unity3D应用程序的状态 - 是否可见
- 18. 检测GPS是否被Android应用程序使用
- 19. Android - 我如何检测什么是崩溃我的应用程序?
- 20. 如何检测用户是否第一次使用我的应用程序?
- 21. 如何在前景中检测到我的Android应用程序?
- 22. 我的Android应用程序如何检测掉线电话?
- 23. 如何检测用户是否分享应用程序Url
- 24. 是否可以检测到我的应用程序是否正在运行并显示在屏幕上?
- 25. Android可以应用程序检测它是如何启动的?
- 26. 我如何检测当前是否显示特定的活动?
- 27. 检测我的应用程序是否已卸载
- 28. 检测我的应用程序是否在电话上运行
- 29. 如何检测我的COM对象是否正在使用.NET应用程序?
- 30. 如何检测用户是否购买了我的应用程序?
这很好,谢谢。 – Lysandus 2011-05-26 14:20:28
您可能需要IMPORTANCE_VISIBLE,而不是FOREGROUND,以防您的应用程序可见,但在其上有另一个服务的对话框。 – 2013-04-04 01:23:19
这对我不起作用 – 2014-10-22 19:27:53