宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述Android中活动被回收了怎么办相关的知识,希望能为你提供帮助。
当一个活动进入到了停止状态,是有可能被系统回收的。按下返回键的时候,活动被重新创建一次,但是里面的数据就没办法重现:
这时Activity中提供了一个onSaveInstanceState()回调方法,保证在活动被回收之前一定会被调用。
onSaveInstanceState()方法会携带一个Bundle类型的参数,Bundle提供了一系列的方法用于保存数据,如putString(),putInt()。
//活动被回收后数据的保存操作方法
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String tempData = "https://www.songbingjia.com/android/Something you just typed";
outState.putString("data_key",tempData);
}
其实onCreate()方法也有一个Bundle类型的参数,一般情况下为null,但是如果活动被系统回收之前有onSaveInstanceState()方法,这个参数就会保存之前活动的数据内容
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"onCreate");
setContentView(R.layout.activity_main);
//活动被回收后,再次创建时数据的恢复
if (savedInstanceState!=null){
String tempData = https://www.songbingjia.com/android/savedInstanceState.getString("data_key");
Log.d(TAG,tempData);
}
}
【Android中活动被回收了怎么办】
推荐阅读
- Android开发学习记录--ListView使用
- Spring Boot 2 - 使用CommandLineRunner与ApplicationRun
- Spring Boot 2 - 使用CommandLineRunner与ApplicationRunner
- java面试总躲不过的并发(volatile原理 + happens-before原则)
- Springboot mybatis generate 自动生成实体类和Mapper
- 一起学Android之Menu
- 用Qt制作的Android独立游戏《吃药了》公布
- Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App
- APP元素的四大类