当按下后退按钮时,我的应用程序关闭了最近的应用程序

时间:2018-12-05 09:09:39

标签: android android-activity back

如果用户按下backPressed运行我的活动,则该活动将被关闭,并且在最近的应用程序列表中不可见。我希望它显示在最近的应用程序列表中。我该怎么办?

@Override
public void onBackPressed() {
  super.onBackPressed();

  Intent i = new Intent(Intent.ACTION_MAIN);
  i.addCategory(Intent.CATEGORY_HOME);
  i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(i);
}

清单:

    <activity
                android:name=".MyActivity"
                android:configChanges="mcc|mnc|locale|touchscreen
                                      |keyboard|keyboardHidden
                                      |navigation|orientation
                                      |screenLayout|screenSize
                                      |fontScale"
                android:excludeFromRecents="true"
                android:exported="true"
                android:launchMode="singleTask"
                android:screenOrientation="portrait" />

2 个答案:

答案 0 :(得分:1)

从AndroidManifest删除此行

android:excludeFromRecents="true"

或将其设置为假

android:excludeFromRecents="false"

答案 1 :(得分:1)

我认为@begiNNer想从设备中删除最近的应用程序(指上次使用的应用程序),例如 CleanMaster 应用程序。因此,必须获得正在运行的应用程序的 pid ,而不是一个一个地删除它。如果是这种情况,则下面的代码将起作用。

代码:

activityManager.killBackgroundProcess(pid);

android.os.Process.killProcess(pid);

获取pid代码:

ActivityManager am = (ActivityManager) 

context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pids = am.getRunningAppProcesses();
int processid = 0;
for (int i = 0; i < pids.size(); i++) {
    ActivityManager.RunningAppProcessInfo info = pids.get(i);
   System.out.println(info.pid);
}