码迷,mamicode.com
首页 > 其他好文 > 详细

Activity(活动)的最佳实践

时间:2015-08-28 17:42:57      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:android   第一行代码   

下面是几种关于活动的最佳实践技巧,这些技巧在以后的工作中非常受用。


1.知晓当前是在哪一个活动

这个技巧将教会你,如何根据程序当前的界面就能判断这是哪一个活动。


第一步:新建一个BaseActivity继承自Activity,然后在BaseActivity中重写onCreate()方法

public class BaseActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		Log.d("BaseActivity", getClass().getSimpleName());
	}
}

第二步:让其他Activity不再继承自Activity,而直接继承自BaseActivity。虽然项目中的活动不再直接继承自Activity,但是它们仍然完全继承了Activity的所有特性。


2.随时随地退出程序

思路十分简单,只需要用一个专门的集合类对所有的活动进行管理即可。

第一步:新建一个ActivityController类作为活动管理器

public class ActivityController {
	
	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){
			activity.finish();
		}
	}

}

第二步:

在onCreate()方法中添加activity

ActivityController.addActivity(this);


在onDestroy()方法中移除activity

ActivityController.removeActivity(this);


在任何地方退出程序调用:

ActivityController.finishAll();


3.启动活动的最佳写法

启动活动的方法大家都会,首先通过Intent构建出当前意图,然后调用startActivity()或者startActivityForResult()方法将活动启动,如果有数据传递,也可以借助Intent来完成。

我写这个的目的是解决这样一种窘境:我要从FirstActivity传递数据到SencodActivity,但是SecondActivity不是自己写的,需要询问编写者或者自己阅读代码,其实换一种写法,该问题迎刃而解。


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);
	}
这样写的好处一目了然,我不需要知道SencodActivity中具体代码细节,也不用询问代码编写者,只需要看该方法的参数就明了,这样写简化了启动活动的代码,启动代码如下:


SecondActivity.actionStart(FirstActivity.this,"data1","data2");

养成一个良好的习惯,给你编写的每个活动都添加类似的启动方法,这样不仅可以让启动活动变得异常简单,还可以省不少同事询问你的时间。



版权声明:本文为博主原创文章,未经博主允许不得转载。

Activity(活动)的最佳实践

标签:android   第一行代码   

原文地址:http://blog.csdn.net/jdfkldjlkjdl/article/details/48053231

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!