我想问问下面的行为是否可行,如果是,我该如何实现它。我需要这种行为的一个非常具体的原因。以与暂停时相同的方向恢复活动?
我有两个活动,我会打电话给他们的活动A和活动B.现在让我们来看看下面这个例子:
从活动A,在纵向,我启动活动B(其中有一个固定的横向) 。用户作为活动B在横向上显示,明显地旋转设备。活动B结束并且活动A被恢复。用户将设备保持横向方向,以便活动A的方向在刚恢复之后立即改变。
我想要的是避免活动A的方向在用户返回时改变。我想在最后一个方向恢复活动A,并且之后只允许方向更改。
锁定方向不是一个选项,因为我想允许用户随时更改它。
android:configChanges =“orientation | screenSize”解决方案既不是一个选项,因为我希望我的活动在方向更改后重新创建。
我有一个选项可以实现我想要的吗?
谢谢!
编辑:我忘了说,保存当前方位破坏活动之前和恢复它再次创建时是不是一种选择了。活动B完成后不应重新创建活动A.
编辑2:我现在在想,我意识到我可以从另一个角度重写问题。
我想避免在活动B完成后重新开始活动A的重新创建。
Afaik,当设备方向发生变化时,会向ActivityThread发送一条消息(值为RELAUNCH_ACTIVITY)。这导致活动A以新的屏幕方向重新创建。
我想避免活动重新启动,因为这将解决我的问题,并将保持最后的方向。
当您的活动重新创建时,您无法控制。您可能应该将您的活动状态定义为不同的类,并将其存储/恢复到onSaveInstanceState/onCreate http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os。捆绑) 该州可以包括最后的方向 –
这就是我在其他情况下做的,但我不能在这个特定情况下。我需要保留当前活动A的实例。 –
你不能那样做。 Android可以随时杀死您的活动。你可以将不想被杀死的东西移动到服务中,但Android也可以杀死一个服务。 –