android技巧(一):如何方便知晓当前Activity?如何管理应用中的Activity?如何最佳的启动一个Activity?

1、如何方便知晓当前Activity?

可以不看代码根据当前界面就知道界面所在Activity的写法:

建立BaseActivity,继承自Activity,在BaseActivity的OnCreate方法中打印当前Activity的名字。之后使项目中所用Activity继承BaseActivity。

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

2、如何管理应用中的Activity?

(1)建立一个集合类对应用中所有Activity进行管理:

class ActivityCollector{
public static List<Activity> activitys=new ArrayList<Activity>();
//添加activity
public static void addActivity(Activity activity){
activitys.add(activity);
} //移除activity
public static void removeActivity(Activity activity){
activitys.remove(activity);
} //结束掉所有activity
public static void finishAll(){
for(Activity activity:activitys){
if(!activity.isFinishing()){
activity.finish();
}
}
}

(2)在之前的BaseActivity中加入:

public class TestActivity 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);
}
}

在需要完全退出程序时只需要调用ActivityCollector.finishAll()即可。

3、如何最佳的启动一个Activity?

当要从当前Activity跳转到Activity b需要携带一些数据时,以下方法可以方便知道Activity b需要的数据有哪些:

在要跳转到的Activity中加入如下方法,当需要进行页面跳转时不直接使用intent跳转而是调用目标Activity中的actionStart方法即可。

 public static void actionStart(Context context,Object  ...data1){
Intent in=new Intent(context,TurnToActivityName);
in.putExtra("param1",(String)data1[0]);
context.startActivity(in);
}
上一篇:Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作


下一篇:ios成长之每日一遍(day 7)