是否有人知道某个事件监听器用于检测应用程序何时从后台返回到前台?我搜索了很多,但我没有找到这样的倾听者。任何其他解决方案表示赞赏谢谢!
答案 0 :(得分:3)
答案 1 :(得分:3)
我在BaseActivity中做了类似的事情
在onResume中我检查enterCount是否等于0然后添加enterCount in onPause我将enterCount延迟减少300ms,当onCreate没有延迟两个长时似乎很好,或者我们可以在onCreate中做些什么来避免第一次。
protected void onResume(){
int enterCount=GlobalManager.getInstance().getEnterCount();
if(enterCount==0){
//do some thing for first enter
}
GlobalManager.getInstance().increaseEnterCount();
}
protected void onPause(){
GlobalManager.getInstance().decreaseEnterCountDelay();
}
答案 2 :(得分:2)
我不确定你要做什么,但是如果你想区分这两个序列:
你可以在onPause()中设置一个标志,并在onResume()中检查该标志。
答案 3 :(得分:0)
在Android 19中,您可以在Application类的onCreate()中注册应用程序生命周期回调,如下所示:
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new AppLifecycleCallback());
}
AppLifecycleCallback如下所示:
class AppLifecycleCallback implements Application.ActivityLifecycleCallbacks {
private int numStarted = 0;
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
if (numStarted == 0) {
//app went to foreground
}
numStarted++;
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
numStarted--;
if (numStarted == 0) {
// app went to background
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}