展会信息港展会大全

Android完全退出的方法
来源:互联网   发布日期:2016-01-14 12:15:43   浏览:1957次  

导读:在Android开发过程中,经常有Activity 忘记finish了,退出后,再启动时,就会跳转到未结束的Activity。所以我在自己写的Application中加了一个方法。01 package xidian.wwf.app;02 03 import java.util.Ar......

在Android开发过程中,经常有Activity 忘记finish了,退出后,再启动时,就会跳转到未结束的Activity。所以我在自己写的Application中加了一个方法。

01 package xidian.wwf.app;

02

03 import java.util.ArrayList;

04 import java.util.List;

05

06 import xidian.wwf.R; <span></span> import android.app.Activity;

07 import android.app.Application;

08

09

10 /**

11* 应用配置类

12* @author WWF

13*

14*/

15 public class AppManager extends Application{

16/**打开的activity**/

17private List<Activity> activities = new ArrayList<Activity>();

18/**应用实例**/

19private static AppManager instance;

20/**

21*获得实例

22* @return

23*/

24public static AppManager getInstance(){

25return instance;

26}

27/**

28* 新建了一个activity

29* @param activity

30*/

31public void addActivity(Activity activity){

32activities.add(activity);

33}

34/**

35*结束指定的Activity

36* @param activity

37*/

38public void finishActivity(Activity activity){

39if (activity!=null) {

40this.activities.remove(activity);

41activity.finish();

42activity = null;

43}

44}

45/**

46* 应用退出,结束所有的activity

47*/

48public void exit(){

49for (Activity activity : activities) {

50if (activity!=null) {

51activity.finish();

52}

53}

54System.exit(0);

55}

56

57@Override

58public void onCreate() {

59instance = this;

60}

61 }<span></span>

然后我写了一个BaseActivity,以后的Activity 都继承这个Activity,如下

01 package xidian.wwf.activity;

02

03 import xidian.wwf.app.AppConfig;

04 import xidian.wwf.app.AppManager;

05 import android.app.Activity;

06 import android.os.Bundle;

07 import android.os.StrictMode;

08

09 /**

10* 基本Activity

11* @author WWF

12* @date 2013-1-26 下午6:24:47

13* @version

14*/

15 public class BaseActivity extends Activity{

16

17@Override

18protected void onCreate(Bundle savedInstanceState) {

19super.onCreate(savedInstanceState);

20//添加到Activity集合

21AppManager.getInstance().addActivity(this);

22//手机端SDK>10,即 android 2.3.x之后在主线程中访问网络需要加入如下代码

23if (AppConfig.getSDKVersionNumber()>10) {

24// 详见StrictMode文档

25StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()

26.detectDiskReads()

27.detectDiskWrites()

28.detectNetwork()// or .detectAll() for all detectable problems

29.penaltyLog()

30.build());

31StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()

32.detectLeakedSqlLiteObjects()

33.detectLeakedClosableObjects()

34.penaltyLog()

35.penaltyDeath()

36.build());

37}

38}

39

40@Override

41public void onBackPressed() {

42super.onBackPressed();

43onDestroy();

44}

45

46@Override

47protected void onDestroy() {

48super.onDestroy();

49//结束Activity&从集合中移除

50AppManager.getInstance().finishActivity(this);

51}

52

53 }

赞助本站

人工智能实验室

相关热词: 完全退出

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港