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