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