0
在应用程序启动时启动首选活动的正确方法是什么?
例如,我有2项活动(1项是帮助/登录类型的活动,另一项是主要活动),我希望允许用户定义在启动时显示的活动。
我需要使用SharedPreferences
吗?
清单中必须做出什么改变? 我一直没有成功找到一个体面的例子在线。从首选项指定启动活动
在应用程序启动时启动首选活动的正确方法是什么?
例如,我有2项活动(1项是帮助/登录类型的活动,另一项是主要活动),我希望允许用户定义在启动时显示的活动。
我需要使用SharedPreferences
吗?
清单中必须做出什么改变? 我一直没有成功找到一个体面的例子在线。从首选项指定启动活动
这里有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>
我想过这个想法,但也许有更好的方法去做,或者用户可能会注意到第三个活动。这有效,如果没有更好的解决方案,我会接受你的答案。谢谢:) – itchy23
也许你应该有一个Splash Activity并在Splash里面进行验证,所以你不会启动main。 – Aiapaec