如何在android中完成应用程序

how to finish application in android

本问题已经有最佳答案,请猛点这里访问。

如何完成申请?我使用下面的代码,但只完成当前活动,返回上一个活动。我想在按钮单击时完成活动。我尝试了finish();system.exit(0);,但没有帮助我。

1
2
3
4
5
6
7
8
9
10
11
12
13
    buttonwithleft.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            quit();
        }
    });
    public void quit() {
    int pid = android.os.Process.myPid();
    android.os.Process.killProcess(pid);

    System.exit(0);
   }


尝试此代码…希望对你有用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
buttonwithleft.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        quit();
    }
});
public void quit() {
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(startMain);
}

那个代码对我有用…我也认为为你工作…


您可以在每个活动的清单文件中设置android:noHistory="true",然后单击按钮时调用finish();函数。这将退出您的应用程序。如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name="name_of_act"
            android:label="@string/app_name"
            android:noHistory="true">
            <intent-filter>
               

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="act_name"
            android:label="@string/app_name"
            android:noHistory="true">
        </activity>
    </application>


如果您想要完成应用程序的所有活动,您应该维护这个流程。

假设我在活动D中,我的实际流程是A->B->C->D。我想杀死我以前的活动A、B、C。我从活动D中走出来的时候,我曾给我的第一个活动A打电话。所以我加了一个意向,叫活动A〔0〕。所以中间的活动将被清除,只显示活动A。我传递了一些标志值,作为活动的意向附加值。城市A.像这样

1
2
3
4
5
         Intent intent = new Intent(D.this,A.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra("finishstatus", true);
                this.startActivity(intent);
                this.finish();

我正在检查onCreate活动方法中的bundle值。

1
2
3
4
5
6
7
8
9
       bundle = this.getIntent().getExtras();
        if(bundle!= null)
        {
       boolean isActivityToBeFinish =  this.getIntent().getExtras().getBoolean("finishstatus");
            if(isActivityToBeFinish)
            {
                finish();
            }
        }

如果状态值可用且为真,则我也正在完成活动A。所以我的问题被解决了,我已经成功地完成了所有以前的活动。

也许我的解释不好,但最后的工作就是这一点。