您的位置:首页 > 其它

管理activity

2015-10-19 16:08 267 查看
最近在项目中遇到了一个问题,因为设置的launchMode的方式不同,有时候,在操作过程中,会启动好几个activity,当退出程序的时候,会把主activity关闭后,又启动一个新的其他的activity.

想到了,可以使用list来把启动的activity添加进来,在退出app的时候,去遍历整个list逐个退出activity.

下面开始代码的编写:

1.创建一个管理activity的工具类:Activityutils

代码示例:

public class ActivityUtils{

public static ArrayList activityList = new ArrayList();

/**

退出app的时候,调用这个方法,逐个finish,

*/

public static void closeActivity(Context mContext)

{

// 关闭所有Activity

for (int i = 0; i < activityList.size(); i++)

{

if (null != activityList.get(i))

{

activityList.get(i).finish();

}

}

//关闭进程,退出app

System.exit(0);

}

}

2.在每一个启动的app内,在setContentView(R.layout.main_activity);之后添加这么一句话:

//将activity添加到ArrayList中

ActivityUtils.activityList.add(this);

3.在退出app的时候,调用finish()activity的方法:

/**

* 处理用户的点击物理返回按键

* */

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {

if ((System.currentTimeMillis() - exitTime) > 2000) {

Toast.makeText(getApplicationContext(), “再按一次退出程序”, Toast.LENGTH_SHORT).show();

exitTime = System.currentTimeMillis();

} else {

// 需要清空栈内所有的activity

ActivityUtils.closeActivity(TabHostHomeFragmentActivity.this);

}

return true;

}

return super.onKeyDown(keyCode, event);

}

到这里,就已经实现了手动去管理activity,并在退出程序的时候,清空activity栈;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: