2014-01-17 78 views
0

在应用程序启动时启动首选活动的正确方法是什么?
例如,我有2项活动(1项是帮助/登录类型的活动,另一项是主要活动),我希望允许用户定义在启动时显示的活动。
我需要使用SharedPreferences吗?
清单中必须做出什么改变? 我一直没有成功找到一个体面的例子在线。从首选项指定启动活动

回答

0

这里有SharedPreferences,并考虑应用程序的可能的解决方案开始的第一次:

public class ThirdActivity extends Activity{ 
Intent myIntent; 

SharedPreferences useFirstActivity; 
SharedPreferences firstRun; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    useFirstActivity = getPreferences(MODE_PRIVATE); 
    firstRun = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE); 

if(useFirstActivity.getBoolean("useFirstActivity", true) || firstRun.getBoolean("firstrun", true)) { 
     myIntent = new Intent(this, FirstActivity.class); 
     firstRun.edit().putBoolean("firstrun", false).commit(); 
} 
else { 
     myIntent = new Intent(this, SecondActivity.class); 
} 
startActivity(myIntent); 
} 

}

此外,注册ThirdActivity在您的清单文件中的主要活动:

 <activity 
     android:name="ThirdActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

不要忘记在清单中注册FirstActivity和Second Activity!

<activity 
     android:name="FirstActivity" 
</activity> 
<activity 
     android:name="SecondActivity" 
</activity> 
+0

我想过这个想法,但也许有更好的方法去做,或者用户可能会注意到第三个活动。这有效,如果没有更好的解决方案,我会接受你的答案。谢谢:) – itchy23

+1

也许你应该有一个Splash Activity并在Splash里面进行验证,所以你不会启动main。 – Aiapaec

相关问题