如何在android中完成应用程序

时间:2013-06-25 08:34:10

标签: android

我如何完成申请?我使用下面的代码,但只完成当前活动,返回上一个活动。我想点击按钮时尝试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);
   }

3 个答案:

答案 0 :(得分: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);
}

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

答案 1 :(得分:0)

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

假设我在活动D中。我的实际流程是A-> B-> C-> D.我想要杀死我之前的活动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.所以我的问题已经解决,我成功地完成了之前的所有活动。

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

答案 2 :(得分: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>