页面(activity)太多,要完全退出app基本很难做到。 后来基于kill pid的基本思想,基本做到了。
只需要下面两个步骤就可以完成。
[list]
[*]设置AndroidManifest.xml
[/list]
.....
[list]
[*]在父类BaseActivity中@Override
protected void onResume() {
super.onResume();
if(((ITDLApplication)getApplicationContext()).isExitApp()) {
exitApp();
}
}
[/list]
[list]
[*]在任意派生类Activity中,调用 ((ITDLApplication)getApplicationContext()).setExitApp(true);
Process.sendSignal(Process.myPid(), Process.SIGNAL_QUIT));
当然,你最好给用户一个Exit app的Entry(一个Menu,Button,甚至用户按Back也可).
在退出前也可以保存一些设置,释放资源。
[/list]
只需要下面两个步骤就可以完成。
[list]
[*]设置AndroidManifest.xml
[/list]
<application android:name=".ITDLApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
android:debuggable="false"
<!-- important setting here -->
android:taskAffinity="android.task.itdl">
<activity android:name=".activity.LoginActivity"
<!-- important setting here -->
android:taskAffinity="android.task.itdl"
android:configChanges="orientation|keyboardHidden|navigation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.XXX1Activity"
<!-- important setting here -->
android:taskAffinity="android.task.itdl"
android:launchMode="singleTask"
<!-- important setting here -->
android:configChanges="orientation|keyboardHidden|navigation">
</activity>
<activity android:name=".activity.XXX2Activity"
<!-- important setting here -->
android:taskAffinity="android.task.itdl"
android:launchMode="singleTask"
<!-- important setting here -->
android:windowSoftInputMode="adjustResize|stateHidden"
android:configChanges="orientation|keyboardHidden|navigation">
</activity>
.....
[list]
[*]在父类BaseActivity中@Override
protected void onResume() {
super.onResume();
if(((ITDLApplication)getApplicationContext()).isExitApp()) {
exitApp();
}
}
[/list]
[list]
[*]在任意派生类Activity中,调用 ((ITDLApplication)getApplicationContext()).setExitApp(true);
Process.sendSignal(Process.myPid(), Process.SIGNAL_QUIT));
当然,你最好给用户一个Exit app的Entry(一个Menu,Button,甚至用户按Back也可).
在退出前也可以保存一些设置,释放资源。
[/list]