自学Android第五天——活动的一些小技巧
知晓当前是在哪一个活动
找到 项目名称——>app——>src——>main——>java——>包,右键new——>java class。我们命名为BaseActivity。内容如下:
public class BaseActivityextends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.d("BaseActivity",getClass().getSimpleName());
}
@Override
protected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
随时随地退出程序
创建和上面一样的方法。名字命名为ActivityCollector,内容如下:
public class ActivityCollector {
public static Listactivities=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();
}
}
activities.clear();
}
}
把下面的代码添加到你要实现退出程序功能的活动中,例如我们在第三个活动添加该功能,代码如下:
public class ThirdActivityextends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
Button but_3=(Button)findViewById(R.id.but_3);
//退出程序
but_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCollector.finishAll();
//杀死当前进程
//android.os.Process.killProcess(android.os.Process.myPid());
}
});
}
你可以选择在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出,杀掉进程的代码在代码前加了注释的。
启动活动的最佳写法
前面见过用Intent进行跳转,这样没问题。但是在真正的项目开发中经常会有对接的问题出现。这时我们换一种写法,就可以解决这种窘境。
例如我们修改SecondActivity中的代码,如下所示:
public class SecondActivityextends BaseActivity {
//启动活动(最佳方法)
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);
}
//其他的方法用点表示
。。。
}
现在我们只需要在FirstActivity中的onClick() 方法里添加SecondActivity.actionStart(FirstActivity.this,"data1","data1");这样一目了然,你可以清晰地知道启动SecondActivity需要传递哪些数据。