Android读书笔记(一)
来源:互联网 发布:考研网络培训班 编辑:程序博客网 时间:2024/06/18 09:01
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 { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); ActivityCollector.addActivity(this); } @Override protected 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() { @Override public void onClick(View v) { BActivity.actionStart(AActivity.this,"名字",1); } });
这样我们就能够很容易的知道B需要什么。
阅读全文
0 0
- Android读书笔记(一)
- Android开发艺术探索读书笔记(一)
- Android开发艺术探索读书笔记(一)
- [读书笔记]Android IPC机制(一)
- Android技术内幕系统卷--读书笔记(一)
- Android 开发指南读书笔记(一)—— Activity
- 【读书笔记】《Android多媒体开发高级编程》(一)
- 《Android源码设计模式解析与实战》读书笔记(一)
- 【读书笔记】Android源码设计模式解析与实践(一)
- Android读书笔记(一)Activity退出时释放内存
- Android开发艺术探索读书笔记(一):Activity生命周期
- TIJ读书笔记(一)
- [测试]读书笔记(一)
- ajax读书笔记(一)
- CruiseControl读书笔记(一)
- Makefile 读书笔记(一)
- CCNA读书笔记(一)
- JAVA读书笔记(一)
- vijos1843(货车运输)
- Python实现RGB与HSI颜色空间的互换
- Lintcode144 Interleaving Positive And Negative Numbers solution 题解
- C++学习摘录(类型和声明)
- DetachedCriteria用法
- Android读书笔记(一)
- java编程实现学生成绩管理系统,采用顺序存储结构
- Linux中的命令
- POJ 3252-Round Numbers
- 软件工程_项目需求分析
- java for循环与if语句结合 通过辗转相除求 最大公约数和最小公倍数
- Spring 编程式事务管理
- "net start mysql"启动MySQL服务报错,提示发生系统错误5解决方法
- 使用缓冲字节流:BufferedInputStream与BufferedOutputStream读写数据