基本上我从父(MainActivity)调用一个新活动(ExplorerActivity) 使用伪代码混合演示......
public class MainActivity extends Activity {
boolean isLoggedin=false;
onCreate(){
Print(isLoggedin)
isLoggedin=true;
}
public boolean onOptionsItemSelected(MenuItem item) {
Intent i = new Intent(MainActivity.this, ExplorerActivity.class);
startActivityForResult(i, 0);
return true;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Log.e("Teste", "Mainactivty: onActivityResult was called!!");
xTaskThread = new xTaskThread();
xTaskThread.start();
}
------------ ExplorerActivity -----
public class ExplorerActivity extends ListActivity {
Intent i = getIntent();
i.putExtra("fileURL", file.getAbsolutePath());
setResult(RESULT_OK, i);
finish();
Manifest:
<activity
android:name="com.geoclient.misc.ExplorerActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
</activity>
-------------------------------------
一切正常,直到从ChildActivity(ExplorerActivity)返回。 按顺序成功:
它看起来像应用程序重新启动...我不明白..我期待回到onResume()并且变量处于相同的状态..请让我知道我错在哪里! (我在Mainactivity中使用googlemap,不确定这是否相关..) 非常感谢!
答案 0 :(得分:1)
您还没有完全理解the Activity lifecycle。一个活动可以在它不在前台的任何时候被杀死,或者在某些东西发生变化时(如方向)被杀死。
如果您要保存状态的数据(如实例变量),请在onSaveInstanceState
中执行此操作。这就是它的用途。
答案 1 :(得分:1)
查看您在那里写的清单行,ExplorerActivity似乎被迫landscape
方向。
所以当你进去时,如果没有在onSaveInstanceState() - onRestoreInstanceState()