我有两个活动,一个是
SplashActivity
,另一个是MainActivity
,这是一个包含webview的活动。
我需要在显示启动画面时加载webview。所以我正在寻找一种在SplashActivity::onCreate()
;
如果直接调用intend,MainActivity会立即显示在前面,并且会停留在webview中。
我查了很多关于启动画面的解决方案,例如this 。但是,在启动时间到期之前,它们不会初始化MainActivity。
答案 0 :(得分:14)
您可以先启动MainActivity
并启动SplashActivity
onCreate()
中的MainActivity
。在所需的持续时间之后,您可以关闭SplashActivity
并再次出现MainActivity
,这样就好像您已经从Splash启动了Main。
让我解释一下 -
在MainActiviy
中使用intent
并使用SplashActivity
而不是startActivity
启动startActivityForResult
,因为您不希望从SplashActivity
传回结果{1}}至MainActivity
。
现在你在SplashActivity
,启动一个线程并在线程中等待所需的持续时间,然后调用finish()
以便SplashActivity
关闭并且之前开始{{1}来到前台。
希望这有帮助。
答案 1 :(得分:6)
Android应用可以缓存网络数据。你可以利用这个优势。 (它对我有用)。 我做了什么:
WebView将使用您在初始屏幕中创建的WebView的缓存。
答案 2 :(得分:-1)
我希望这应该完美地运作......
ProgressDialog pd;
pd = ProgressDialog.show(YOUR_ACTIVITY.this,"Loading...", true, false);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent(YOUR_ACTIVITY.this,
NEXT_ACTIVITY.class);
startActivity(intent);
pd.dismiss();
}
}).start();
}
});