下面是几种关于活动的最佳实践技巧,这些技巧在以后的工作中非常受用。
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");
养成一个良好的习惯,给你编写的每个活动都添加类似的启动方法,这样不仅可以让启动活动变得异常简单,还可以省不少同事询问你的时间。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/jdfkldjlkjdl/article/details/48053231