【发布时间】:2016-07-16 12:02:43
【问题描述】:
我正在尝试在两个活动之间切换。 在活动 1 中,我有名为 GoToSecond 的按钮转到第二个活动。 同样,在活动 2 中,将名为 GoToFirst 的按钮转到第一个活动。
我在第一个活动中使用了日志消息。
点击 GoToSecond 按钮时我得到的订单是 上创建
开始
onResume
onSaveInstance
在停止
然后它切换到第二个活动。 现在在第二个活动中,当我单击按钮 GoToFirst 时,第一个活动打开并 第一个活动的日志顺序是
onCreate
开始
onResume ..
为什么在 onStart 之后没有调用 onRestoreInstance? 即使存储了实例??
谁能帮帮我?
这是第一个活动的代码:
public class MainActivity extends AppCompatActivity {
EditText hello;
Button b1;
public static String TAG="Prajwal";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hello=(EditText) findViewById(R.id.hello);
Log.d(TAG,"OnCreate counter 1");
b1=(Button) findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this,Main2Activity.class);
startActivity(i);
}
});
我没有在代码中添加日志消息。
第二个活动代码是
public class Main2Activity extends AppCompatActivity {
Button b2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
b2=(Button) findViewById(R.id.b2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Main2Activity.this,MainActivity.class);
startActivity(i);
}
});
Log.d(MainActivity.TAG,"Oncreate 2");
}
例如 如果我在第一个活动中设置了一个 EditText,并且如果我在其中有一些文本,那么在第二个活动和第一个活动之间切换时,我会丢失该文本。 bcoz onCreate 在第一个活动中被调用。 但是当我切换到横向模式时 onRestoreInstance 被调用并且我没有丢失任何文本。
【问题讨论】:
-
请发布您的第一个
Activity的代码。