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