how to finish application in android
本问题已经有最佳答案,请猛点这里访问。
如何完成申请?我使用下面的代码,但只完成当前活动,返回上一个活动。我想在按钮单击时完成活动。我尝试了
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); } |
那个代码对我有用…我也认为为你工作…
您可以在每个活动的清单文件中设置
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(); |
我正在检查
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。所以我的问题被解决了,我已经成功地完成了所有以前的活动。
也许我的解释不好,但最后的工作就是这一点。