Android应用程序生命周期上下颠倒
我有一个程序有一些正常的行为,但我仍然不知道我做错了什么 活动A调用-->活动B 我将字符串/整数从一个活动传递到另一个活动(Intent.putExtra()) 我已将我的活动声明为单个实例,并在清单中声明了谁是谁的家长,但当我打开其他应用程序,然后返回到我的应用程序时,我所在的活动是唯一还活着的活动。 如果我删除了“singleInstance”,那么我的导航可以工作,但是从intent(以前的活动)接收字符串的导航会崩溃 我希望能够:Android应用程序生命周期上下颠倒,android,android-activity,backup,task,instance,Android,Android Activity,Backup,Task,Instance,我有一个程序有一些正常的行为,但我仍然不知道我做错了什么 活动A调用-->活动B 我将字符串/整数从一个活动传递到另一个活动(Intent.putExtra()) 我已将我的活动声明为单个实例,并在清单中声明了谁是谁的家长,但当我打开其他应用程序,然后返回到我的应用程序时,我所在的活动是唯一还活着的活动。 如果我删除了“singleInstance”,那么我的导航可以工作,但是从intent(以前的活动)接收字符串的导航会崩溃 我希望能够: 当我在应用程序中时,在我的活动中向上/向后导航 如果
- 当我在应用程序中时,在我的活动中向上/向后导航
- 如果我离开应用程序并返回,仍然可以在应用程序中向上/向后导航
“后退”按钮会将您带到手机所在的上一屏幕/应用程序/活动,无论它属于哪个应用程序。如果我了解您必须在第二个活动示例中设置字符串数据的条件:
if(intent != null){
yourString = intent.getStringExtra("count");
}
然后您必须提供保存实例,如
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("count", yourString);//or int or other look on developers
}
并从实例中恢复
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
yourString = savedInstanceState.getString("count");
}
您试图实现的行为是Android上的默认行为。所以我相信在你的问题上,少就是多
AndroidManifest.xml
:
- 从中删除所有
。这真的一点也不重要parentActivityName
- 删除所有
这些特定的边缘案例,除非您有特定的原因和非默认行为,否则不要使用它们launchMode
intent
您传递给活动的参数不要被这些清单细节搞得一团糟,我认为它们与您的问题无关。在任何活动中,无论您退出和进入应用程序多少次,您都应该能够调用getIntent().getExtras()
并访问传递给它的任何参数
在onSaveInstanceState
和onRestoreInstanceState
期间,不需要保存/恢复意图参数。这些回调针对的是当前状态,而不是传递给它的参数。这些是不同的事情
:自动执行。不能back
finish()代码>调用下一个活动时的上一个活动
:只需覆盖up
@凌驾 公共布尔值onOptionsItemSelected(菜单项项){ 开关(item.getItemId()){ //响应操作栏的“向上/主页”按钮 案例android.R.id.home: finish();//将显示此结束和上一个结束。 回来 //其他菜单项? } }onOptionsItemSelected
如果它崩溃了,询问一下崩溃的情况,不要搞乱自动默认导航“尝试修复它”你为什么不关注什么崩溃,而不是通过更改意图标志来“修复”它?因为我的工作方式不允许我在退出应用程序并返回后在应用程序中导航,这意味着即使不坏也有问题。这看起来好多了。我试试看。下次可以。你们的解决方案实际上很有效,删除了所有内容,我只需按“后退”按钮即可。现在,我想知道应用程序中的导航是否正确。我的意思是,用户要想得到更高的价格,你就得按回去吗?