Android需要事件前台和后台
Posted
技术标签:
【中文标题】Android需要事件前台和后台【英文标题】:Android Need event Foreground and Backgorund 【发布时间】:2014-03-11 14:56:16 【问题描述】:嗨朋友们,我正在制作一个应用程序,当用户进入后台时,我需要在其中显示一些东西,当用户进入前台时再次显示。所以我需要在我们的应用程序进入后台时获取一个事件,当应用程序进入前台时在 8 以上的 api 中工作时再次获取事件。
我尝试了所有方法,但只能识别我的应用是否在前台。当我们在应用程序级别再次上线时,我需要事件。
【问题讨论】:
这个link 有助于解决我的问题... 【参考方案1】:您可以为所有活动定义一个超类并跟踪应用程序的状态。如果所有活动都处于停止状态 - 应用程序在后台,否则 - 在前台。在您的超级活动的onStart()
和onStop()
方法中,您可以增加和减少可见活动的数量。然后在onStart()
和onStop()
检查当前是否有任何可见的活动。如果没有 - 应用程序变为活动/不活动,您可以调用您的方法:
public class SuperActivity extends Activity
private static int sVisibleActivitiesCount;
@Override
public void onStart()
super.onStart();
if (SuperActivity.sVisibleActivitiesCount == 0)
onAppBecomesActive();
SuperActivity.sVisibleActivitiesCount++;
@Override
public void onStop()
super.onStart();
SuperActivity.sVisibleActivitiesCount--;
if (SuperActivity.sVisibleActivitiesCount == 0)
onAppBecomesInactive();
private void onAppBecomesActive()
// Do some staff
private void onAppBecomesInactive()
// Do some staff
第二种方法是使用ActivityLifecycleCallbacks(最低 API 14)来监控活动生命周期并在一个地方跟踪应用程序状态,而不需要所有活动的超类。因此,如果您的应用具有 minSdkVersion="14",我宁愿使用这种方法。
【讨论】:
还可以在 Application 的自定义实现中添加一个布尔值,并通过 getApplication() 和强制转换在 onStart onStop 中对其进行编辑。所以不需要计数。 感谢您的回复但我仅在应用程序成为前台和后台时才需要事件。但是你的方法很棒@makovkastar以上是关于Android需要事件前台和后台的主要内容,如果未能解决你的问题,请参考以下文章
对于Xamarin Android,我无法处理点击事件的后台通知