The Android program has a lot of activity, such as the main window A, called sub-window B, if the direct finish () in B, then the next show is a. How do I close the entire Android app in B? I have summed up several relatively simple implementation methods.
1. Local methods for Dalvik VMS
Android.os.Process.killProcess (Android.os.Process.myPid ())//Get PID
System.exit (0); Normal Java, C # Standard Exit method with a return value of 0 for graceful exit
2. Task Manager method
The first step is to show that the method runs on Android 1.5 API level 3 to be able, while requiring permissions
Activitymanager am = (activitymanager) getsystemservice (Context.activity_service);
Am.restartpackage (Getpackagename ());
System will, the package under, all processes, services, all killed, you can kill clean, to pay attention to add
<uses-permission android:name=\ "Android.permission.restart_packages\" ></uses-permission>
3. According to the activity's declaration cycle
3. We know that the Android window class provides a history stack, we can use the principle of the stack ingenious implementation, here we in a window open b window in the Intent to join the flag intent.flag_activity_clear_top directly, When you turn on B, all activity for that process space will be cleared.
In the a window, use the following code to invoke the b window
Intent Intent = new Intent ();
Intent.setclass (Android123.this, Cwj.class);
Intent.setflags (Intent.flag_activity_clear_top); Note the flag setting of the bank
StartActivity (Intent);
Next, in the b window you need to exit directly using the Finish method to exit all.
4. Customize a actiivty stack, as above, but use a single-mode activity stack to manage all activity. and provides a way to exit all activity. The code is as follows:
01 |
public class ScreenManager { |
02 |
private static Stack<Activity> activityStack; |
03 |
private static ScreenManager instance; |
04 |
private ScreenManager(){ |
06 |
public static ScreenManager getScreenManager(){ |
08 |
instance= new ScreenManager(); |
13 |
public void popActivity(Activity activity){ |
16 |
activityStack.remove(activity); |
22 |
public Activity currentActivity(){ |
23 |
Activity activity=activityStack.lastElement(); |
28 |
public void pushActivity(Activity activity){ |
29 |
if (activityStack== null ){ |
30 |
activityStack= new Stack<Activity>(); |
32 |
activityStack.add(activity); |
35 |
public void popAllActivityExceptOne(Class cls){ |
37 |
Activity activity=currentActivity(); |
41 |
if (activity.getClass().equals(cls) ){ |
44 |
popActivity(activity); |
From:http://www.open-open.com/home/space-37924-do-blog-id-5805.html
Android-four ways to completely exit the current application