关于Activity数据保存的问题

PogbaLiu 2016-05-07 09:23:41
package com.ocular.htcvive.activitylifecycletest;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.Button;

public class MainActivity extends Activity {
public static final String TAG="MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"onCreate");
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Button startNormalActivity=(Button)findViewById(R.id.start_normal_activity);
Button startDialogActivity=(Button)findViewById(R.id.start_dialog_activity);
startNormalActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,NormalActivity.class);
startActivity(intent);
}
});
startDialogActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,DialogActivity.class);
startActivity(intent);
}
});
}


@Override
protected void onStart(){
super.onStart();
Log.d(TAG,"onStart");
}

@Override
protected void onResume(){
super.onResume();
Log.d(TAG,"onResume");
}

@Override
protected void onPause(){
super.onPause();
Log.d(TAG,"onPause");
}

@Override
protected void onStop(){
super.onStop();
Log.d(TAG,"onStop");
}


@Override
protected void onRestart(){
super.onRestart();
Log.d(TAG,"onRestart");
}

@Override
protected void onDestroy(){
super.onDestroy();
Log.d(TAG,"onDestroy");
}
}


如上面MainActivity代码所示,这是我买的一本安卓开发教程上的一个体会活动生命周期的示例代码,然后讲到活动数据保存的问题时,书本叙述如下所示
之后上面百度了相关信息

我的问题是:1.教材上面说的添加onSaveInstanceState()方法和修改onCreate()方法可以保存数据,那么onSaveInstanceState()方法的参数是怎么传进onCreate()方法内的

2.百度到的相关信息上说系统内存不足时会回收,activity的实例会被回收,我想问问具体是怎样的情况才会回收activity

谢谢各位!
...全文
651 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
PogbaLiu 2016-07-14
  • 打赏
  • 举报
回复
引用 2 楼 u013762572 的回复:
少年 onSaveInstanceState 这个玩意是你activity A被压入栈中,在系统算法中,比如此时系统内存不足啊,A就会被杀死,A的相关状态值就会被被保存,以Bundle的形式onSaveInstanceState,在系统再次有内存时,它会认为故意杀死acitivityA是不道德的,那么此时系统就会重新把A 创建,同时拿出onSaveInstanceState,此时走的就是oncreate方法。
那举个例子说有两个活动压入栈中,产生了两个Bundle类,那么等之前两个当中的一个活动重新onCreate时怎么识别Bundle,其实Bundle有需要特殊的处理代码吗,还是说直接用?
PogbaLiu 2016-07-14
  • 打赏
  • 举报
回复
引用 1 楼 ganshenml 的回复:
1.savedInstanceState 2.回收activity=销毁activity?
回收跟销毁是不同意思吗,求指教
ganshenml 2016-05-07
  • 打赏
  • 举报
回复
1.savedInstanceState 2.回收activity=销毁activity?
microhex 2016-05-07
  • 打赏
  • 举报
回复
少年 onSaveInstanceState 这个玩意是你activity A被压入栈中,在系统算法中,比如此时系统内存不足啊,A就会被杀死,A的相关状态值就会被被保存,以Bundle的形式onSaveInstanceState,在系统再次有内存时,它会认为故意杀死acitivityA是不道德的,那么此时系统就会重新把A 创建,同时拿出onSaveInstanceState,此时走的就是oncreate方法。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧