检查使用意图的活动是否仍然存在

时间:2014-05-12 14:16:29

标签: android android-intent

我有两项活动:MainActivityEventActivity

每当我打开我的应用程序时(默认情况下为MainActivity)并且SharedPreferences中有一个标记,它就会转到EventActivity并自行完成。否则,它只是意图。

EventActivity我有一个按钮,当点击它时,会调用finish()并返回EventActivity

问题是,当我重新打开我的应用程序时,它将完成MainActivity,当我按下我的自定义后退按钮时,它将关闭应用程序(因为意图句柄已完成)。

如何检查MainActivity是否未使用finish()

如果我能做到这一点,检查它是否已经完成我可以这么做。

感谢。

2 个答案:

答案 0 :(得分:0)

覆盖onDestroy MainActivity方法,设置public static Boolean MainActivity字段public。在该方法中,将static true字段设置为EventActivity。在完成之前检查其值EventActivity,即当您从MainActivity返回MainActivity时。如果EventActivity的值为true,则触发从false开始onCreate的意图。并在MainActivity的{​​{1}}中将其值设为public class MainActivity extends Activity { public static boolean isMainActivityDestroyed = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); isMainActivityDestroyed = false; . . .//Do something here } @Override protected void onDestroy() { super.onDestroy(); isMainActivityDestroyed = true; . . .//Do something here } }

如下:

在MainActivity.java中

 public class EventActivity extends Activity {
      .
      .
      .//Some methods

      //Method which finishes EventActivity & starts MainActivity if destroyed
      public void buttonOnClick()
      {
            if(MainActivity.isMainActivityDestroyed)
            {
                Intent i = new Intent(this, MainActivity.class);
                startActivity(i);
                finish();
            }
      }
 }

在EventActivity.java中

isMainActivityDestroyed

如果MainActivity成立,则表明finish()使用了{{1}}。

答案 1 :(得分:0)

您可以创建自己的Application课程Application,并从您的应用onCreate启动所需的活动。在清单中,您将删除MainActivity的默认意图过滤器。