-9

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

    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);
   }
4

3 回答 3

1

试试这个代码......我希望它对你有用。

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);
}

该代码为我工作......我认为也为你工作......

于 2013-06-25T09:29:32.097 回答
0

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

假设我在活动 D。我的实际流程是 A->B->C->Di 想要杀死我以前的活动 A、B、C。当我从活动 D 出发时,我曾经调用我的第一个活动 A。所以我添加了意图 FLAG_ACTIVITY_CLEAR_TOP 来调用活动 A。所以中间活动将被清除并仅显示活动 A。我将一些标志值作为意图附加信息传递给活动 A. 像这样

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

我正在检查活动 A 的 onCreate 方法中的捆绑值,例如

       bundle = this.getIntent().getExtras();
        if(bundle!= null)
        {
       boolean isActivityToBeFinish =  this.getIntent().getExtras().getBoolean("finishstatus");
            if(isActivityToBeFinish)
            {
                finish();
            }
        }

如果状态值可用并且它是真的,我也在完成活动 A。这样我的问题就解决了,我成功地完成了之前的所有活动。

可能是我的解释不好,但最终的工作只是这个。

于 2013-06-25T09:06:03.433 回答
0

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

<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>
                <action android:name="android.intent.action.MAIN" />

                <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>
于 2013-06-25T09:23:38.833 回答