开发的时候遇到应用程序不能完全退出的问题,试了很多办法,finish + System.exit(0) 并不管用。
最后找到了一个办法(http://hi.baidu.com/tjbaso/item/48935bd818fa734efa576876)
无论是在继承Activity还是TabActivity或是ActivityGroup都可以正常退出。
1、使用application存储Acivity
public class MyApplication extends Application {
private LinkedList<Activity> sAllActivitys = new LinkedList<Activity>();
public void addActivity(Activity activity){
sAllActivitys.add(activity);
}
public void removeActivity(Activity activity){
sAllActivitys.remove(activity);
}
public LinkedList<Activity> getAllActivitys(){
return sAllActivitys;
}
}
2、原先继承Activity改成BaseActivity,TabActivity改成BaseActivity
#################################################################
package com.first.activity;
import java.util.LinkedList;
import android.app.Activity;
import android.os.Bundle;
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
((MyApplication)getApplication()).addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
((MyApplication)getApplication()).removeActivity(this);
}
protected void finishAll() {
LinkedList<Activity> sAllActivitys = ((MyApplication)getApplication()).getAllActivitys();
for(Activity activity : sAllActivitys) {
activity.finish();
}
sAllActivitys.clear();
}
protected void exit() {
finishAll();
System.exit(0);
}
}
有空再研究下Activity的生命周期,还有很多没有掌握的。