启动具有特定活动的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,它会被重定向到与当前用户对应的状态。

我认为这可能会导致一些循环错误 - 有没有更好的方法来做到这一点?

+0

好问所以+1 –

我相信这是正常的做法,除非您还可以添加调用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(); 
    } 
} 
+1

好点啊。谢谢。此外,我还没有足够的代表点投票,否则我会! – Asha

+0

是的,这个问题给了我足够的代表点:)谢谢你的帮助 – Asha

+1

非常欢迎你:)你也可以批准我的答案是正确的,请吗? – morphium

请确保您正在更新喜好值按照您的导航activtiy。这将节省您对活动启动的不必要检查。