Android在startActivity之后阻止重启活动

时间:2016-08-25 18:06:32

标签: android android-intent

我遇到MainActivity方法的问题。

问题结构

  1. 使用LinkMovementMethod点击某些TextView中的链接(例如,http://google.com
  2. 回调到startActivity outside of activity类(因为一些TextView几乎存在所有活动,所以我使用外部类)
  3. 使用Otto将事件发布到Activity B(因为它可以防止onCreate(Bundle savedInstanceState)问题。)
  4. on MainActivity,意图.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { ... } ]); 没有任何Flag,只需一个额外的(链接)
  5. 当活动B创建时,活动A将销毁并调用{{1}}(我将一些Log.e插入我的代码,肯定会重新调用日志代码)
  6. 尝试过的方法

    1. 在MainActivity,Activity B
    2. 中插入android:launchMode =“singleInstance”
    3. 在MainActivity中插入android:configChanges =“orientation | screenSize | keyboardHidden”(这意味着,方向不是问题。我已经在我的应用程序的所有活动中实现了onSaveInstanceState) 3.删除步骤3.而不是将事件发布到MainActivity,在LinkCatcher类中调用startActiivty()
    4. 我尝试了所有尝试的方法。并且我不知道为什么活动被破坏并重新调用onCreate(而不是onResume),即使我不使用任何finish()方法。

1 个答案:

答案 0 :(得分:1)

因为这就是Android的设计方式 - 在任何时候,当前不在屏幕上的活动都可能被杀死。你无法阻止它。您可以做的就是考虑它 - 您可以在onSaveInstanceState中保存任何必要的数据,并从Bundle或onRestoreInstanceState中的onCreate中恢复它。