1. 程式人生 > >[Android新手學習筆記10]-活動Activity實踐之啟動、銷燬、資料

[Android新手學習筆記10]-活動Activity實踐之啟動、銷燬、資料


1.BaseActivity

重寫onCreate()方法,新增下面程式碼,列印當前Activity名稱:

  1. @Override
  2. protectedvoid onCreate(@NullableBundle savedInstanceState){
  3. super.onCreate(savedInstanceState);
  4. Log.d("BaseActivity", getClass().getSimpleName());
  5. }

增加ActivityCollector,管理Activity,程式碼如下:

  1. publicclassActivityCollector{
  2. publicstaticList<
    Activity> activities =newArrayList<>();
  3. publicstaticvoid addActivity(Activity activity){
  4.        activities.add(activity);
  5. }
  6. publicstaticvoid removeActivity(Activity activity){
  7.        activities.remove(activity);
  8. }
  9. publicstaticvoid finishAll(){
  10. for(Activity activity : activities){
  11. if(!activity.isFinishing
    ()){
  12.                activity.finish();
  13. }
  14. }
  15. }
  16. }

修改BaseActivity類,程式碼如下:

  1. publicclassBaseActivityextendsAppCompatActivity{
  2. @Override
  3. protectedvoid onCreate(@NullableBundle savedInstanceState){
  4. super.onCreate(savedInstanceState);
  5. Log.d("BaseActivity", getClass().getSimpleName());
  6. ActivityCollector.addActivity(
    this);
  7. }
  8. @Override
  9. protectedvoid onDestroy(){
  10. super.onDestroy();
  11. ActivityCollector.removeActivity(this);
  12. }
  13. }
其他Activity繼承BaseActivity。

2.繼承BaseActivity,新增actionStart()方法

  1. publicclassSecondActivityextendsBaseActivity{
  2. publicstaticvoid actionStart(Context context,String data1,String data2){
  3. Intent intent =newIntent(context,SecondActivity.class);
  4.        intent.putExtra("param1", data1);
  5.        intent.putExtra("param2", data2);
  6.        context.startActivity(intent);
  7. }
  8. }

這樣寫的好處,啟動SecondActivity時,知道需要傳遞哪些引數,啟動程式碼如下:

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