猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
如何判断Android应用程序是否正在前台运行?
我正在由c2dm触发的android应用中执行状态栏通知。如果应用程序正在运行,我不想显示通知。您如何确定该应用程序是否正在运行并且在前台?
慕慕森
浏览 1311
回答 3
3回答
繁星coding
作出这样一个全局变量private boolean mIsInForegroundMode;和分配false的价值onPause()和true价值onResume()。样例代码:private boolean mIsInForegroundMode;@Overrideprotected void onPause() { super.onPause(); mIsInForegroundMode = false;}@Overrideprotected void onResume() { super.onResume(); mIsInForegroundMode = true;}// Some function.public boolean isInForeground() { return mIsInForegroundMode;}
0
0
0
慕侠2389804
这是一篇很老的文章,但仍然很有用。以上接受的解决方案可能有效,但有误。正如Dianne Hackborn写道:这些API并不是应用程序用来建立UI流程的基础,而是用于向用户显示正在运行的应用程序或任务管理器等。是的,在内存中有一个列表保存这些事情。但是,它在另一个进程中处于关闭状态,由与您的线程分开运行的线程进行管理,而不是您可以依靠的东西(a)及时看到正确的决定,或者(b)在返回时保持一致。加上关于“下一步”活动去的决定总是在切换发生的那一刻完成,直到直到那个确切的点(活动状态被短暂锁定以进行切换),我们才能做出决定真的知道接下来会发生什么。并且这里的实现和全局行为不能保证将来保持不变。正确的解决方案是实施:ActivityLifeCycleCallbacks。这基本上需要一个应用程序类,并且可以在其中设置处理程序以标识您在应用程序中的活动状态。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Android
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续