Android Studio(二):启动活动与结束应用
一、科学的结束应用
1. 用一个ActivityController类去管理所有的活动。
3 import android.app.Activity; 4 import java.util.ArrayList; 5 import java.util.List; 6 7 //活动管理器 8 public class ActivityCollector { 9 public static List<Activity> activities = new ArrayList<>(); 10 //添加活动 11 public static void addActivity(Activity activity){ 12 activities.add(activity); 13 } 14 //移除活动 15 public static void removeActivity(Activity activity){ 16 activities.remove(activity); 17 } 18 //停止所有活动 19 public static void finishAll() 20 { 21 for(Activity activity:activities){ 22 activity.finish(); 23 } 24 } 25 }
2. 新建一个BaseActivity类作为所有活动的基类
1 package com.example.test; 2 3 import android.os.Bundle; 4 import android.util.Log; 5 import androidx.annotation.Nullable; 6 import androidx.appcompat.app.AppCompatActivity; 7 8 public class BaseActivity extends AppCompatActivity { 9 @Override 10 protected void onCreate(@Nullable Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 Log.d("BaseActivity",getClass().getSimpleName()); 13 ActivityCollector.addActivity(this); 14 } 15 16 @Override 17 protected void onDestroy() { 18 super.onDestroy(); 19 ActivityCollector.removeActivity(this); 20 } 21 }
在需要退出应用的时候,调用 ActivityCollector.finishAll() 就行了。
二、科学的启动活动
1. 在要被启动的活动类里添加一个Intent的构建方法
1 public class SecondActivity extends BaseActivity { 2 public static void actionStart(Context context,String datal,String data2){ 3 Intent intent = new Intent(context,SecondActivity.class); 4 intent.putExtra("param1",datal); 5 intent.putExtra("param2",data2); 6 context.startActivity(intent); 7 } 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_second); 12 } 13 }
2. 在要启动该活动的地方,直接调用该方法就行了
SecondActivity.actionStart(MainActivity.this,"data1","data2");
data1和data2是要被启动的活动想要获得的数据。当然也可以不要。