第一行安卓代码——活动的最佳实践2.6

原创 2017年02月14日 10:15:37

2.6.1 知晓当前在哪一个活动

当我们接收别人的代码的时候,很有可能找不到界面对应的活动是哪一个。
我们可以在项目中新建一个BaseActivity类。然后让BaseActivity继承AppCompatActivity,并重写OnCreate()方法,如下所示:

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

然后让BaseActivity成为其他活动的父类就可以了

2.6.2 随时随地退出程序

用一个专门的集合类对所有的活动进行管理
代码很简单,如下

新建一个ActivityCollector类作为活动管理器

public class ActivityCollector {
    public static List<Activity> activities = new ArrayList<>();

    public static void addActiviry( 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();
            }
        }
    }
}

修改BaseActivity代码

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

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
    }
}

这样就可以在自己想要退出的地方使用ActivityCollector.finishAll()。
同时为了保证程序完全退出,还可以在销毁所有活动的代码后面加上

android.os.Process.killProcess(android.os.Process.myPid());

2.6.3 启动活动的最佳写法

有时候我们在启动新的活动时需要用到intent传递数据。但是团队合作中这个活动可能要让别人使用。这个时候为了让别人知道要传递什么数据怎么办呢?可以在该活动中添加代码

public static void actionStart(Cotext context, String data1, String data2) {
    Intent intent = new Intent(context, SecondActivity.class);
    intent.putExtra("param1", data1);
    intent.putExtra("param2", data2);
    context.startActivity(intent);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

第一行代码2.6-活动的最佳实践

1、知晓当前是哪一个活动   也就是让每一个活动启动的时候,都打印出活动名。代码如下:Log.d(tag, getClass().getSimpleName());  一种方法就是在每一个活动都添加...

第一行安卓代码——使用Intent在活动之间穿梭2.3

只有一个活动的安卓应用确实太简单了,这一节我们一起来看看如果由主活动跳转到其他的活动,以及活动的返回,参数的传递。在活动之间穿梭主要有两种方式1、使用显式Intent 2、使用隐式Intent2.3....

第一行安卓代码——活动的生命周期2.4

我们知道Android中的活动是可重叠的。我们每启动一个新的活动,就会覆盖当前的活动,然后点击Back就会销毁最上面的活动,下面的一个活动就会重新显示出来。其实Anroid是使用任务【Task】来管理...

活动的最佳实践--第一行代码

活动的最佳实践 1、知晓当前是哪个活动 首先新建一个类BaseActivity继承自Activity,然后在BaseActivity中重写OnCreate()方法,如下: package com....

安卓开发:活动的最佳实践2--随时随地退出程序

如果用户点击了多个界面,进入多个不同的Activity,你会发现当前想退出程序是非常不方便的,需要连续按多次Back键才行。按Home键只是把程序挂起,并没有退出程序。其实这个问题就足以引起你的思考,...

第一行安卓代码——调用摄像头拍照8.3.1

//最开始是没想写Blog的,不过零星的知识也确实需要总结,以后也会不断补充这本书的内容和安卓学习中的收获画重点:调用摄像头分为简单的几步 —————————————————————————————...

第一行安卓代码——播放多媒体文件8.4.1

8.4.1播放音频 在安卓中播放较长的音频文件,如背景音乐等都是通过MediaPlayer类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使播放音乐的工作变得非常简单。下面是Medi...

第一行安卓代码——从相册中选择照片8.3.2

8.3.1调用摄像头拍照 修改布局文件和MainActivity 见代码
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一行安卓代码——活动的最佳实践2.6
举报原因:
原因补充:

(最多只允许输入30个字)