启动具有特定活动的Android应用程序
问题描述:
当应用程序启动或恢复时,我想根据“SharedPrefences”中设置的变量将用户重定向到特定的“活动”。启动具有特定活动的Android应用程序
要做到这一点,我在考虑让该检查SharedPreferences状态变量和重定向到正确的活动方法:
private void launchRedirect(Context ctxt) {
Integer status = AppPreferences.getStatus(this);
Intent i = new Intent(MainActivity.this, Activity1.class);
switch (status) {
case 0:
i = new Intent(MainActivity.this, Activity2.class);
case 1:
i = new Intent(MainActivity.this, Activity3.class);
case 2:
i = new Intent(MainActivity.this, Activity4.class);
case 3:
i = new Intent(MainActivity.this, Activity5.class);
}
startActivity(i);
}
然后我可以调用每个“的onResume”的方法这种方法在每一个活动我的应用程序:
public void onResume(Bundle savedInstanceState) {
launchRedirect(this);
}
这将意味着用户不能在技术上回去的最后一项活动,因为当他们叫它,它调用的onResume,它会被重定向到与当前用户对应的状态。
我认为这可能会导致一些循环错误 - 有没有更好的方法来做到这一点?
答
我相信这是正常的做法,除非您还可以添加调用finish()方法,如果您需要在这种情况下关闭MainActivity。
此外,不要忘了break语句:
private void launchRedirect(Context ctxt) {
Integer status = AppPreferences.getStatus(this);
Intent i = new Intent(MainActivity.this, Activity1.class);
switch (status) {
case 0:
i = new Intent(MainActivity.this, Activity2.class);
break;
case 1:
i = new Intent(MainActivity.this, Activity3.class);
break;
case 2:
i = new Intent(MainActivity.this, Activity4.class);
break;
case 3:
i = new Intent(MainActivity.this, Activity5.class);
break;
}
startActivity(i);
if (/* check if MainActivity should be closed */) {
finish();
}
}
答
请确保您正在更新喜好值按照您的导航activtiy。这将节省您对活动启动的不必要检查。
好问所以+1 –