我首先尝试使用onStart()或onResume()。但是,使用它们有两个缺点。
1,如果我开始另一项活动并稍后解雇,请按照以下步骤进行。 (有点像模态提出了一个新的视图控制器然后解除它)
private void dismiss() {
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.setClass(this, MainActivity.class);
startActivity(intent);
finish();
}
仍将调用onResume()
2,我无法在其他活动中重复使用相同的登录信息。
因此,我想知道Android中的方法是否与Android中的 - (void)applicationWillResignActive:(UIApplication *)应用程序完全相同
答案 0 :(得分:3)
您可以使用onRestart()方法。仅当您的应用从后台进入前景时才会调用此方法。
这两种方法都有相似之处:
它类似于“Some Cases”中的appDidBecomeActive。每当你去背景,即从Activity到Home Screen,然后调用onPause()后跟onStop()方法。然后你恢复到android中的app然后onRestart()然后调用onPause()方法。
在进入主屏幕背景时iOs的生命周期:( App Delegate Life Cycle Methods) appWillEnterForeground - > appDidBecomeActive
Android中的生命周期,同时从主屏幕进入前景:(活动生命周期方法) onRestart() - >的onResume。
从上面看,onRestart似乎与appWillEnterForeground类似,而onResume类似于appDidBecomeActive;但我们可以使用onRestart而不是onResume作为appDidBecomeActive,因为:
这两种方法的差异:
在调用appDidBecomeAcitve时,第一次(在App Launch时)不会调用onRestart()方法。
应用启动期间iOS中的生命周期:(应用代表生命周期方法) AppDidFinishLaunchingWithOptions - > appDidBecomeActive
Android应用启动期间的生命周期:(活动生命周期方法)
的onCreate() - >在onStart() - > 的onResume()
答案 1 :(得分:0)
要检查用户是否已登录,您可以在android中使用sharedPreferences。这些类似于iOS中的NSUserDefaults类。用户登录后在sharedPrefs中保存布尔值,如果要再次运行登录过程,则再次检查onResume。
答案 2 :(得分:0)
如果您使用MainActivity
代码将dismiss()
置于最前面,可以在MainActivity.onNewIntent()
中检测到这一点:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if ((intent & Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) != 0) {
// I've been brought to the FRONT by another activity
}
}
这有帮助吗?我不是百分百肯定我明白你想要的东西。