我有两项活动:MainActivity
和EventActivity
。
每当我打开我的应用程序时(默认情况下为MainActivity
)并且SharedPreferences
中有一个标记,它就会转到EventActivity
并自行完成。否则,它只是意图。
在EventActivity
我有一个按钮,当点击它时,会调用finish()
并返回EventActivity
。
问题是,当我重新打开我的应用程序时,它将完成MainActivity
,当我按下我的自定义后退按钮时,它将关闭应用程序(因为意图句柄已完成)。
如何检查MainActivity
是否未使用finish()
?
如果我能做到这一点,检查它是否已经完成我可以这么做。
感谢。
答案 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的默认意图过滤器。