第一行代码 2.6活动的最佳实践

2.6.1 知晓当前是哪一个活动

新创建一个继承于AppcompatActivity的类BaseActivtiy
让活动继承于BaseActivtiy,所有活动的性能不受影响。
每当我们进入一个活动时它的类名会打印出来,所以我们就可以知晓当前是哪一个活动。

2.6.2随时随地退出活动

在这里插入图片描述
1.新建一个ActivityCollector类作为活动管理器

package com.example.activitytest;

import android.app.Activity;

import java.util.ArrayList;
import java.util.List;

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


2.修改baseacitivity中的代码

package com.example.activitytest;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

public class BaseActivity extends AppCompatActivity{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseAtivtiy",getClass().getSimpleName());
        ActivityCollector.addActivity(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
    }
}

在这里插入图片描述
3.在这里插入图片描述

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("ThirdActivity","Task id is" + getTaskId());
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);
        Button button3 = (Button) findViewById(R.id.button_3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ActivityCollector.finishAll();
            }
        });
    }

4.在这里插入图片描述

2.6.3启动活动的最佳写法

猜你喜欢

转载自blog.csdn.net/Power_wy/article/details/89203251
今日推荐