展会信息港展会大全

Android开发Activity忘记finish 没有完全退出的解决办法
来源:互联网   发布日期:2016-01-14 12:16:40   浏览:2073次  

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

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

package xidian.wwf.app;

import java.util.ArrayList;

import java.util.List;

import xidian.wwf.R;import android.app.Activity;

import android.app.Application;

/**

* 应用配置类

* @author WWF

*

*/

public class AppManager extends Application{

/**打开的activity**/

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

/**应用实例**/

private static AppManager instance;

/**

*获得实例

* @return

*/

public static AppManager getInstance(){

return instance;

}

/**

* 新建了一个activity

* @param activity

*/

public void addActivity(Activity activity){

activities.add(activity);

}

/**

*结束指定的Activity

* @param activity

*/

public void finishActivity(Activity activity){

if (activity!=null) {

this.activities.remove(activity);

activity.finish();

activity = null;

}

}

/**

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

*/

public void exit(){

for (Activity activity : activities) {

if (activity!=null) {

activity.finish();

}

}

System.exit(0);

}

@Override

public void onCreate() {

instance = this;

}

}

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

package xidian.wwf.activity;

import xidian.wwf.app.AppConfig;

import xidian.wwf.app.AppManager;

import android.app.Activity;

import android.os.Bundle;

import android.os.StrictMode;

/**

* 基本Activity

* @author WWF

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

* @version

*/

public class BaseActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//添加到Activity集合

AppManager.getInstance().addActivity(this);

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

if (AppConfig.getSDKVersionNumber()>10) {

// 详见StrictMode文档

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

.detectDiskReads()

.detectDiskWrites()

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

.penaltyLog()

.build());

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

.detectLeakedSqlLiteObjects()

.detectLeakedClosableObjects()

.penaltyLog()

.penaltyDeath()

.build());

}

}

@Override

public void onBackPressed() {

super.onBackPressed();

onDestroy();

}

@Override

protected void onDestroy() {

super.onDestroy();

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

AppManager.getInstance().finishActivity(this);

}

}

赞助本站

人工智能实验室
AiLab云推荐
推荐内容
展开

热门栏目HotCates

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