1.存储用户临时数据onSaveInstanceState()
当Activity由于内存不足而被回收时,临时数据丢失,为了避免这种情况要使用onSaveInstanceState()。
保存数据(用带一个参数的方法,此方法是AppCompatActivity的,个人认为兼容性比较好):

    protected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);String save ="要保存的数据";outState.putString("data",save);}

恢复数据:

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main8);if(savedInstanceState != null){String data = savedInstanceState.getString("data");}}

2.技巧:知晓当前在哪一个活动
当接手一份不是自己写的代码时,此技巧的作用十分的突出。
创建一个Activity,重写onCreate()方法,让其它的Activity来继承此Activity。

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main8);Log.d("Activity", getClass().getSimpleName());}

3.技巧:随时随地退出程序

public class ActivityCollector {public static List<Activity> activities = new ArrayList<>();/*** 添加activity* @param activity*/public static void addActivity(Activity activity) {activities.add(activity);}/***删除activity*/public static void removeActivity(Activity activity) {activities.remove(activity);}/*** 删除list中所有的activity*/public static void finishAll() {for (Activity activity : activities) {if(!activity.isFinishing()){activity.finish();}}}
}

使用

public class MyActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_my);ActivityCollector.addActivity(this);}@Overrideprotected void onDestroy() {super.onDestroy();ActivityCollector.removeActivity(this);}
}

4.技巧:activity传值
当AActivity是你写的,而BActivity不是你写的。你需要从A向B传值,这时你不知道B需要什么值。为了解决这个问题,我们需要在B中创建一个静态的方法来接受需要的参数。

    /*** @param context* @param name 模拟需要的参数* @param id    模拟需要的参数*/public static void actionStart(Context context, String name, int id) {Intent intent = new Intent(context,BActivity.class);intent.putExtra("name", name);intent.putExtra("id", id);context.startActivity(intent);}

在A中使用

        but_jump.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {BActivity.actionStart(AActivity.this,"名字",1);}});

这样我们就能够很容易的知道B需要什么。

Android读书笔记(一)相关推荐

  1. 第一行代码 Android读书笔记(二)

    第一行代码 Android读书笔记 第三章 软件也要拼脸蛋-UI开发的点点滴滴 常用控件的使用方法 详解4种基本布局 自定义控件 最常用和最难用的控件-ListView 更加强大的滚动控件-Recyc ...

  2. 大话企业级android读书笔记(一)

    Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备.目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方).Android操作系统最初由Andy Rubi ...

  3. 我的Android读书笔记——(1)

    今天来阅读<Android开发艺术探索> 1.Activity生命周期和启动模式 问题1.架设当前Activity为A,如果这是用户打开一个新的ActivityB哪儿B的onResume和 ...

  4. android+读书笔记

    <android开发案例驱动教程> chat 2: 1. 按 Ctrl+F11 F12 可切换模拟器的横屏竖屏 chat 3: 1. 开发google map必须使用带有google ap ...

  5. Android读书笔记---View基础

    View篇(一) 什么是View? View是Android中所有控件的基类,不管是简单的button和TextView就还是复杂的RelativeLayout和ListView,他们都有共同的基类V ...

  6. Android 读书笔记

    <Android开发艺术探索> 一.Activity 的生命周期和启动模式 1. 当前 Activity 为 A,此时打开 Activity B:A.onPause() → B.onCre ...

  7. Android读书笔记(六) OkHttp(GET、POST)、解析XML(Pull、SAX)

    1.OkHttp的使用   使用OkHttp需要添加库到app/build.gradle文件中,如下: dependencies {compile 'com.squareup.okhttp3:okht ...

  8. 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系

    本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...

  9. Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记

    Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记     本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.A ...

最新文章

  1. 最强 JDK15 安装与讲解,有点想升级,终于要废弃偏向锁了!
  2. 在docker的Linux容器搭建前端开发环境
  3. Hadoop教程(五):Flume、Sqoop、Pig、Hive、OOZIE
  4. 交换机开发(四)—— ARP 基础知识解析
  5. Java 面向对象:static的理解
  6. Juniper srx系列防火墙端口限速
  7. Android.InstallAntOnMacOSX
  8. 用户空间缺页异常pte_handle_fault()分析--(上)
  9. 计算机课程反馈报告怎么写,计算机概论a课程报告范文.doc
  10. 产品初探(一):面试经验记录
  11. 每周学一点Egret(17)default.thm.json 文件编译小坑
  12. 元宇宙大火的“天时、地利、人和”
  13. linux 加固检测脚本,Linux系统检测和防护脚本
  14. 个人微信淘客机器人api开发
  15. 如何解决Error while saving file: Unable to open database file问题
  16. Azure:陪伴你们,是我最长情的告白
  17. d3.js读书笔记-2
  18. 利用Ladon实现C2免杀所有杀软
  19. 图像色深与位深度的区别
  20. [matlab]AHP层次分析法

热门文章

  1. Cocos2d-x 2.0 百例精讲:如何让一个精灵跟随触点移动
  2. 字体图标 fa fa html5,前端引入icon的方法(iconfont,fontawesome)
  3. 色彩表示与编码之JPEG压缩编码
  4. 一篇文章带你搞透redis高性能IO模型
  5. 寻找全排列的下一个数
  6. 谷歌浏览器(Chrome)输入框总是有历史输入记录,解决办法
  7. 软件工程之功能性需求和非功能性需求
  8. c语言初步实验报告,c语言实验报告(大一c语言实验报告答案)
  9. 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建
  10. Vue3能用到生产环境了吗?