活动的小技巧

知晓当前是在哪一个活动

新建一个BaseActivity

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

之后所有的Activity作为BaseActivity的子类,这样进入到某一活动界面,就会打印Activity的类名。


随时随地退出程序

建一个专门的集合类对所有的活动进行管理

public static void finishAll(){
        for(Activity activity:activities){
            if(!activity.isFinishing()){
                activity.finish();
                android.os.Process.killProcess(android.os.Process.myPid());
            }
        }
    }

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

killProcess()方法用于杀掉一个进程,他接收一个进程id参数,我们可以通过myPid()方法来获得当前程序的进程id。



启动活动的最佳写法

我们一般写法在MainActivity

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

而一种更简便的写法在SecondActivity中

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

然后再MainActivity中调用SecondActivity中的actionStart()方法

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SecondActivity.actionStart(MainActivity.this,"data1","data2");

            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值