活动的最佳实践

知晓当前是哪一个活动

试想,若有几十个activity,我们如何知道应用显示的当前界面是对应哪一个文件的代码? 答案是: 没进入一个活动,可以让其打印信息诉你。还要对每个代码进行修改吗?继承可以减少这个重复操作。
建立BaseActivity.java

public class BaseActivity extends AppCompatActivity {

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

随时退出程序

建立一个饿汉式单例模式ActivityAcollector类来收集所有的活动,需要时可以全部销毁。

public class ActivityCollector {
    public static List<AppCompatActivity> activities = new ArrayList<AppCompatActivity>();
    public static void removeActivity(AppCompatActivity activity){
        activities.remove(activity);
    }
    public static void finishAll(){
        for (AppCompatActivity activity: activities){
            if (!activity.isFinishing()){
                activity.finish();
            }
        }
    }
}

启动活动的最佳方式

假设Main2Activity需要两个非常重要的参数,在启动Main2Activity时必须传递过来,那么我们可能这样写

Intent intent = new Intent(MainActivity.this,Main2Activity);
intent.putExtra("param1","data1");
intent.putExtra("param2","data2");
startActivity(intent);

但若我们不知道Main2Activity需要传递哪些数据怎么办?
我们可以在Main2Activity添加一个actionStart的方法,自己完成启动。

public class Main2Activity extends BaseActivity {
   ...
    public static void actionStart(Context context,String data1,String data2){
        Intent intent = new Intent(context,Main2Activity.class);
        intent.putExtra("param1",data1);
        intent.putExtra("param2",data2);
        context.startActivity(intent);
    }
    ...
参考

第一行代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值