文章目录
- 知晓当前是在哪一个活动
- 随时随地退出程序
- 启动活动的最佳方法
知晓当前是哪一个活动
新建BaseActivity类,继承AppCompatActivity
重写onCreate()方法
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
然后让其他的活动都继承BaseActivity,就知道当前是在哪一个Activity了
随时随地退出程序
使用一个专门的集合类对所有的活动进行管理。
- 新建ActivityCollector类。
- 然后在BaseActivity中调用方法,所有的Activity继承BaseActivity
//新建ActivityCollector 类
public class ActivityCollector {
public static List<Activity> activities = new ArrayList<>();
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中调用方法
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
启动活动的最佳方法
场景:
当活动A跳转到活动B,而且需要传递数据的时候。(优点:不需要阅读B中的代码,清晰的知道启动B需要传递哪些数据,简化了代码。)
代码:在B中写一个静态方法
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中编写actionStart()方法。然后如果FirstActivity需要携带参数跳转,直接使用这个方法就好了。