Android-four ways to completely exit the current application

Source: Internet
Author: User

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    publicclassScreenManager {
02  privatestaticStack<Activity> activityStack;
03  privatestaticScreenManager instance;
04  privateScreenManager(){
05  }
06  publicstaticScreenManager getScreenManager(){
07   if(instance==null){
08    instance=newScreenManager();
09   }
10   returninstance;
11  }
12 //退出栈顶Activity
13  publicvoidpopActivity(Activity activity){
14   if(activity!=null){
15    activity.finish();
16    activityStack.remove(activity);
17    activity=null;
18   }
19  }
20
21 //获得当前栈顶Activity
22  publicActivity currentActivity(){
23   Activity activity=activityStack.lastElement();
24   returnactivity;
25  }
26
27 //将当前Activity推入栈中
28  publicvoidpushActivity(Activity activity){
29   if(activityStack==null){
30    activityStack=newStack<Activity>();
31   }
32   activityStack.add(activity);
33  }
34  //退出栈中所有Activity
35  publicvoidpopAllActivityExceptOne(Class cls){
36   while(true){
37    Activity activity=currentActivity();
38    if(activity==null){
39     break;
40    }
41    if(activity.getClass().equals(cls) ){
42     break;
43    }
44    popActivity(activity);
45   }
46  }
47 }
From:http://www.open-open.com/home/space-37924-do-blog-id-5805.html

Android-four ways to completely exit the current application

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.