我搜索了很多,但没有找到答案。我开发了一个android应用程序,在第一个午餐用户处,将显示一个由viewpager制成的欢迎屏幕。问题是我不知道将欢迎活动代码放在应用程序中的最佳位置。
最简单的方法可能是在主要活动中,甚至在super.onCreate()之前,在onCreate方法中,我尝试获取共享的首选项值,然后评估它是否是第一手午餐。如果是这样,那么我将开始欢迎活动,如下所示
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true);
if (welcome) {
// go and start welcoming activity
Intent intent = new Intent(this, WelcomeSlideActivity.class);
startActivity(intent);
}
super.onCreate();
}
}
但是我找到了另一种方法来处理它。它是应用程序类。由于Application类是第一个类,因此它甚至在我的应用程序中的任何其他代码之前运行。所以我想,我会很乐意在这里做,如下所示
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true);
if (welcome) {
// go and start welcoming activity
Intent intent = new Intent(this, WelcomeSlideActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
}
所以我处于两难境地,哪一个将是最好的选择。而且我什至不知道我是否以正确的方式来做,因为在android开发者网站或任何地方都没有这样的文档。
看看如何以正确的方式创建启动画面。https://www.bignerdranch.com/blog/splash-screens-the-right-way/
至于使用Application
类-它主要用于应用程序范围的配置,以维护全局应用程序状态。因此,从此处开始活动没有多大意义,因为它的目的已变为成为应用程序的入口点,而不是为整个应用程序提供状态。
此外,为什么不做WelcomeSlideActivity
第一个“启动者”活动呢?然后,在其中可以创建是否启动没有历史记录的下一个活动或是否显示当前视图的逻辑。
理想情况下,您应该创建一个初始屏幕活动,该活动确定是否显示WelcomeSlideActivity
或MainActivity
。这样做的好处是,当他的应用确定要启动哪个活动时,会向用户显示一个初始屏幕,通知用户该应用已启动
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句