Ash*_*sha 5 android launch sharedpreferences android-activity
当应用程序启动或恢复时,我想根据"SharedPrefences"中设置的变量将用户重定向到特定的"活动".
为此,我正在考虑使用一种方法来检查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);
}
Run Code Online (Sandbox Code Playgroud)
然后我可以在每个'onResume'方法中为我的应用中的每个活动调用此方法:
public void onResume(Bundle savedInstanceState) {
launchRedirect(this);
}
Run Code Online (Sandbox Code Playgroud)
这意味着用户在技术上无法返回到上一个Activity,因为当他们调用它时,它会调用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();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3247 次 |
最近记录: |