当我退出应用程序时,android-activity从它关闭的位置开始

android-activity start from where it closed when I exit the app

在MainActivity中,我有关闭应用程序的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Override
public void onBackPressed() {
    if (exit){
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        finish();

        super.onBackPressed();
    }else {
        exit = true;
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                exit = false;
            }
        }, 3 * 1000);
    }

当我想要关闭应用程序时,我应该按2后退按钮。

问题是,当我关闭应用程序时,它从另一个活动开始,主要来自我去过的最后一个活动。

我怎样才能始终从mainActivity开始活动而不是其他活动?


使用这些代码行..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    @Override
 public void onBackPressed() {
     super.onBackPressed();
  if (exit){
  Intent intent = new Intent(Intent.ACTION_MAIN);
         intent.addCategory(Intent.CATEGORY_HOME);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
         intent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME);
        finish();
      }else {
         exit = true;
         new Handler().postDelayed(new Runnable() {
          @Override
           public void run() {
              exit = false;
          }
       }, 3 * 1000);
   }
}

尝试launchMode:singleTask或singleInstance

1
2
3
<activity
    android:name=".MainActivity"
    android:launchMode="singleInstance">


在自动启动活动的每个/中写下这部分代码,

1
2
3
4
@Override
public void onBackPressed() {
YourActivityName.this.finish();
}

覆盖MainActivity的onBackPressed方法,如下所示

1
2
3
4
5
6
7
8
private int backpressedCount;
@Override
public void onBackPressed() {
    backpressedCount++;
    if (backpressedCount == 2) {
        android.os.Process.killProcess(android.os.Process.myPid());
    }
}

当你关闭你的应用程序时,你必须杀死所有的活动,看看这个如何杀死一个包含其所有活动的应用程序?