日拱一卒(四)

Activity最佳实践:

(1)了解当前是哪个Activity:

public class BaseActivity extends Activity {
		
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.d("BaseActivity", getClass().getSimpleName());
	}
	
}

这样通过日志可以判断当前运行的是哪个Activity

(2)随时随地退出程序

新建一个ActivityCollector类作为活动管理器,代码如下所示:

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();
			}
		}
	}

}

在BaseActivity的onCreate()方法中调用了ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动管理器里。然后在BaseActivity中重写onDestroy()方法,并调用了ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器里移除。

从此以后,不管你想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。

(3)启动活动的最佳

SecondActivity向要跳转到它的Activity封装一个跳转方法

public class SecondActivity extends BaseActivity {
	
	public static void actionStart(Context context, String data1, String data2) {
		Intent intent = new Intent(context, SecondActivity.class);
		intent.putExtra("param1", data1);
		intent.putExtra("param2", data2);
		context.startActivity(intent);
	}
	……
}

这样写还简化了启动活动的代码,现在只需要一行代码就可以启动SecondActivity,如下所示:

button1.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
		SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
	}
});






你可能感兴趣的:(android)