我正在开发一个 Android 应用程序,我想检测用户何时通过单击“后退”按钮或“主页”按钮退出我的应用程序。
另外,像这样的事件onInit()
在我的场景中很有用,因为我只想拥有MyInıt
行动首先开始。
onDestroy()
直到其他应用程序需要更多内存时才会调用。
注意:这仅在您的目标 >= API14 时有效
您还可以使用Application.registerActivityLifecycleCallbacks()当任何活动暂停时发布延迟Runnable
(当用户离开应用程序时将调用)Handler
。当活动创建/开始/恢复时,您可以删除该活动Runnable
from Handler
。因此,当您在应用程序内部导航时,您总是会取消该操作Runnable
,但是如果激活了不是来自您的应用程序的另一个活动 -Runnable
将被调用。
当用户离开我的应用程序时,我用它来注销用户,这是回调代码:
public class MyApplication extends Application implements Application.ActivityLifecycleCallbacks {
private Handler handler;
private Runnable runLogout = new Runnable() {
@Override
public void run() {
//logoutUser()
}
};
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(this);
handler = new Handler(getMainLooper());
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
handler.removeCallbacks(runLogout);
}
@Override
public void onActivityStarted(Activity activity) {
handler.removeCallbacks(runLogout);
}
@Override
public void onActivityResumed(Activity activity) {
handler.removeCallbacks(runLogout);
}
@Override
public void onActivityPaused(Activity activity) {
handler.postDelayed(runLogout, 1000);
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
然而,Runnable
不会在活动生命周期的上下文中运行,因此要在活动中使用它,您需要设置和检查一些应用程序范围的标志或广播意图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)