本文主要是介绍#Android笔记#简便地退出程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
公司今天没啥活,闲来无事,看了下最近新出的一本书----《第一行代码---Android》,发现其中一个关于Activity启动模式的代码片段很有用,拿出来先标记一下。
思路大致是:通过一个ActivityCollector来对活动进行增加,删除等管理;然后创建一个BaseActivity来调用add()和remove()方法实现增加或删除Activity;当用户想要在某个Activity中退出程序,就可以让其继承这个BaseActivity,直接调用finishAll()方法。这样,就不需要在页面跳转时纠结,是否要finish()掉这个页面了。
public class ActivityCollector {
public static List<Activity> activities = new ArrayList<Activity>();
public static void addActivity(Activity activity) {
activities.add(activity);
}
public static void removeActivity(Activity activity) {
activities.remove(activity);
}
public static void finishAll() {
for (Activity activity : activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
}
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
public class ThirdActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("ThirdActivity", "Task id is " + getTaskId());
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.third_layout);
Button button3 = (Button) findViewById(R.id.button_3);
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ActivityCollector.finishAll();
}
});
}
}
这篇关于#Android笔记#简便地退出程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!