• 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是要被启动的活动想要获得的数据。当然也可以不要。

  • 相关阅读:
    关于秒杀的系统架构优化思路
    如何设计一个秒杀系统
    RabittMQ实践(二): RabbitMQ 与spring、springmvc框架集成
    RabittMQ实践(一): RabbitMQ的安装、启动
    Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
    Linux 网络 I/O 模型简介(图文)
    Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
    Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
    Java 网络编程(四) InetAddress类
    Java 网络编程(三) 创建和使用URL访问网络上的资源
  • 原文地址:https://www.cnblogs.com/tomatokely/p/15981791.html
Copyright © 2020-2023  润新知