这是我的情景。我有一个目录浏览器的活动。当用户点击活动列表中的文件时,它将启动另一个显示文件内容的活动。
第二个活动在操作栏中有默认的后退按钮。当我点击它时,我希望第一个活动重新出现并显示之前打开的相同目录。
如何正确存储位置以及如何在第一个活动再次激活时恢复它?
我尝试了下面的代码,但OnCreate()方法中的savedInstanceState对象始终为null,而else分支将被执行!这是什么原因?
private String rootFolder = "/";
private String currentDirectory = rootFolder;
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString(getString(R.string.state_current_directory), currentDirectory);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_file_picker);
pathDisplay = (TextView)findViewById(R.id.path);
if (savedInstanceState != null) {
String lastDirectory = savedInstanceState.getString(getString(R.string.state_current_directory));
getDirectory(lastDirectory);
}
else {
// THIS BRANCH WILL ALWAYS BE EXECUTED?!?
getDirectory(currentDirectory);
}
}