从OP来看,我不知道,如果你绝对必须两次初始化mainActivity ..
的Android被设计成一个应用程序是从来没有真正被用户关闭。 专注于覆盖android生命周期方法,如OnResume和OnPause以保存UI数据等。
因此,您不需要明确finish()
的主要活动(实际上不应该)。要接收以前活动的登录或同步数据,只需覆盖OnActivityResult()
方法。但是,要做到这一点,您必须使用startActivityForResult(intent)
开始活动。因此,对于每一个活动,你应该这样做:
主要活动:
static public int LOGIN_RETURN_CODE = 1;
开始登录:
Intent intent = new Intent(MainActivity.this, LogInActivity.class);
startActivityForResult(intent, LOGIN_RETURN_CODE);
以收到的登录信息:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case LOGIN_RETURN_CODE:
//do something with bundle attached
}
}
登录活动:
static public int SYNC_RETURN_CODE = 2;
开始同步:
Intent intent = new Intent(LogInActivity.this, SyncActivity.class);
startActivityForResult(intent,SYNC_RETURN_CODE);
才能收到信息并返回主:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case MainActivity.SYNC_RETURN_CODE:
Intent intent = new Intent(...);
intent.setResult(RESULT_OK);
finish();
}
}
这可能不是所有的编译,但希望你的想法。
来源
2011-09-29 18:38:52
Ian
“同时”意味着什么? – Blackbelt
我只是修复了这个问题 –