根据首选项指定启动活动

时间:2014-01-17 16:06:25

标签: android

应用启动时启动首选活动的正确方法是什么? 例如,我有2个活动(1个是帮助/登录类型活动,另一个是主要活动),我想允许用户定义在启动时显示哪个活动。
我需要使用SharedPreferences吗? 清单中必须进行哪些更改? 我在网上找到一个不错的例子是不成功的。

1 个答案:

答案 0 :(得分: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>