在我的应用中,我有一个启动Activity
,它会显示我的徽标并执行一些网络请求,之后它会启动主Activity
并完成自己。
问题是我总是需要Android从启动Activity
启动我的应用程序并执行请求。但是当用户在主Button
上按下主页Activity
并且应用程序转到后台时,Android会在一段时间后回收它。当用户再次按下我的应用程序的图标时,Android会从主要活动中选择明星而不是启动Activity
。
因此,我需要Android在任何时候回收我的主Activity
它从启动活动启动我的应用程序,而不是从主Activity
启动我的应用程序。
有办法吗?
答案 0 :(得分:1)
查看活动生命周期http://developer.android.com/reference/android/app/Activity.html
首先,当应用进入onPause()
状态时,我们的数据不会被更改。那么为什么你需要再次调用请求呢?
如果MainActivity finish()
中的应用程序严格onPause()
,或者您可以从MainActivity本身调用请求。使用onResume()
以便您可以获得应用恢复状态。
答案 1 :(得分:0)
您可以创建一个StartActivity,它检查应用程序状态,然后重定向到正确的Activity,然后自行销毁。
例如(尚未登录时重定向到登录屏幕):
public class StartActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (MyState.getInstance().isLoggedIn()) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
} else {
Intent intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
finish();
}
}