第一行安卓代码——活动的最佳实践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);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

《碎片的最佳实践》读书笔记

转载请注明出处:http://blog.csdn.net/chengbao315/article/details/50962716 最近学习了郭霖《第一行代码》的4.5章节《碎片的最佳实践——一个简...
  • chengbao315
  • chengbao315
  • 2016年03月23日 14:02
  • 709

《第一行代码》——(服务最佳实践)问题,解决,体会

问题:在《第一行代码》中的服务最佳实践,写好代码后,点击startDownload按钮后,发现直接弹出”下载失败“的通知,程序并没有下载。 解决:笔者通过对作者提供的URL访问时发现,该url时无...
  • f1315688669
  • f1315688669
  • 2017年08月22日 16:44
  • 166

网络编程的最佳实践

目前你已经掌握了 HttpURLConnection 和 HttpClient 的用法,知道了如何发起 HTTP 请求,以及解析服务器返回的数据,但也许你还没有发现,之前我们的写法其实是很有问题的。因...
  • u013678930
  • u013678930
  • 2016年03月24日 11:00
  • 372

第一行安卓代码——活动的启动模式2.5

//本文仅供自己理解 活动的启动模式一共有四种,在AnadroidManifest.xml中的1、standand standand是默认的启动模式 特征: 启动新的活动时不会管返回栈中栈顶的活动是...
  • TyroneRenekton
  • TyroneRenekton
  • 2017年02月14日 09:45
  • 475

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

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

网络编程最佳实践

网络编程最佳实践socket描述符的引用机制socket描述符引用机制,当父进程生成一个socket描述符然后fork一个子进程后,那么这个socket描述符的引用计数就+1了此后子进程close s...
  • zhangyifei216
  • zhangyifei216
  • 2015年11月16日 22:55
  • 810

第一行安卓代码——在活动中创建Menu2.2

安卓中的菜单就是QQ右上角的那个+号。点击之后显示创建群聊 加好友 扫一扫 ...显示过程其实就是加载一个Menu布局,非常简单见代码 在res下新建menu文件夹,再新建main的菜单文件 ...
  • TyroneRenekton
  • TyroneRenekton
  • 2017年02月04日 11:55
  • 761

第一行安卓代码

想学习安卓的同学,以后跟帖,我会每天不定时的去更新代码,QQ群:5521238311、首先我们得搭载环境: 我这里用的是eclipse+JDK1.7 下载地址360云盘: https://yun...
  • zhenliang5553
  • zhenliang5553
  • 2016年05月27日 12:27
  • 2978

Activity(活动)的最佳实践

下面是几种关于活动的最佳实践技巧,这些技巧在以后的工作中非常受用。 1.知晓当前是在哪一个活动 这个技巧将教会你,如何根据程序当前的界面就能判断这是哪一个活动。 第一步:新建一个BaseAct...
  • jdfkldjlkjdl
  • jdfkldjlkjdl
  • 2015年08月28日 16:19
  • 919
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一行安卓代码——活动的最佳实践2.6
举报原因:
原因补充:

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