我有一个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. 如何检测用户是否正在查看我的应用程序(Android)
- 3. android如何检测应用程序是否在过去运行
- 4. android代码来检测我的android应用程序用户是否在线
- 5. 检测应用程序是否安装?
- 6. 如何检测我的应用程序是否正在运行EarlGrey测试?
- 7. 是否有可能检测到Android应用程序的卸载?
- 8. Android - 我如何检测什么是崩溃我的应用程序?
- 9. 我的Android应用程序如何检测掉线电话?
- 10. 如何检测用户是否第一次使用我的应用程序?
- 11. 是否可以检测到我的应用程序是否正在运行并显示在屏幕上?
- 12. Android可以应用程序检测它是如何启动的?
- 13. 如何检测用户是否分享应用程序Url
- 14. 检测我的应用程序是否在电话上运行
- 15. 检测我的应用程序是否已卸载
- 16. 如何检测用户是否购买了我的应用程序?
- 17. 如何检测我的COM对象是否正在使用.NET应用程序?
- 18. 如何检测Android手机是否安装了特定的应用程序?
- 19. 如何检测iOS/Android应用程序是否从PubNub的后台带入?
- 20. 如何检测是否有任何原生应用程序在Android中启动
- 21. android:检测应用程序是否从市场上下载
- 22. Android检测应用程序是否进入后台
- 23. 如何检查用户是否在我的iPhone应用程序
- 24. 如何检测设备是否植入应用程序?
- 25. 如何在Safari中检测是否安装了应用程序
- 26. 如何检测应用程序是否受内存限制?
- 27. 如何检测应用程序是否泄漏内存?
- 28. 如何检测应用程序是否关闭
- 29. 检查我的应用程序是否在Android中运行
- 30. 如何检测我的应用程序是否在Heroku上运行?
这很好,谢谢。 – Lysandus 2011-05-26 14:20:28
您可能需要IMPORTANCE_VISIBLE,而不是FOREGROUND,以防您的应用程序可见,但在其上有另一个服务的对话框。 – 2013-04-04 01:23:19
这对我不起作用 – 2014-10-22 19:27:53