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
We know that the Android window class provides a history stack, which we can skillfully implement using the stack principle, where we add the flag intent.flag_activity_clear_top directly to the Intent when opening the b window in a window. 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:
Public classScreenmanager {Private StaticStack<activity>Activitystack;Private StaticScreenmanager instance;PrivateScreenmanager () {} Public StaticScreenmanager Getscreenmanager () {if(instance==NULL) {instance=NewScreenmanager (); } returninstance;}//exiting the top of the stack activity Public voidpopactivity (activity activity) {if(activity!=NULL) {activity.finish (); Activitystack.remove (activity); Activity=NULL; } }//get current stack top activity PublicActivity currentactivity () {Activity Activity=activitystack.lastelement (); returnactivity;}//pushes the current activity into the stack Public voidpushactivity (activity activity) {if(activitystack==NULL) {Activitystack=NewStack<activity>(); } activitystack.add (activity); } //exit all activity in the stack Public voidPopallactivityexceptone (Class cls) { while(true) {Activity Activity=currentactivity (); if(activity==NULL){ Break; } if(Activity.getclass (). Equals (CLS)) { Break; } popactivity (activity); } }}
Android-four ways to completely exit the current application