通过使用 onPause(),我可以检查活动是否进入后台。我的问题是这个 onPause() 每次都会被调用,即使我要从这个活动中去另一个活动。
所以我的主要问题是,如果我通过按主页按钮最小化应用程序,我想从任务管理器中删除应用程序,并且当应用程序进入后台但不使用 onPause() 时,此代码将写入每个活动中。
我的代码片段如下->
@Override
public void onPause() {
if (isBackgroundRunning(this)){
ExitActivity.exitApplication(getApplicationContext());
}
super.onPause();
}
public static boolean isBackgroundRunning(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
for (String activeProcess : processInfo.pkgList) {
if (activeProcess.equals(context.getPackageName())) {
//If your app is the process in foreground, then it's not in running in background
return true;
}
}
}
}
return true;
}
ExitActivity 用于从任务管理器中删除应用程序。
public class ExitActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish();
}
public static void exitApplication(Context context) {
Intent intent = new Intent(context, ExitActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(intent);
}
}
我看到了与此相关的大多数问题,但找不到解决方案。请帮我。提前致谢 :)