当我启动我的应用程序时,我会在启动闪屏之前看到白屏几秒钟。
我想知道我的应用程序的大小是否会影响它(它是17.7MB)。 或者是因为我的测试设备是旧的(HTC Desire HD)并且有太多数据被破坏了?
或者这是正常行为? 或者问题可能在我的代码中,它位于...
之下清单的一部分:
<activity android:name=".SplashView"
android:noHistory="true"
android:screenOrientation="portrait"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
android:configChanges="orientation" >
<intent-filter >
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
启动活动:
public class SplashView extends SherlockActivity {
private final int SPLASH_DISPLAY_LENGHT = 1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.splash_view);
try {
RefreshRatingsTask urt = new RefreshRatingsTask();
urt.execute();
} catch (Exception e) {
// ignore
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent mainIntent = new Intent(SplashView.this,
MainActivity.class);
SplashView.this.startActivity(mainIntent);
SplashView.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
}
感谢
答案 0 :(得分:9)
Android使用您的初始Activity的主题在将应用程序加载到内存时显示虚拟Activity。
缩小您的应用程序将有助于缩短等待时间,使用主题设置启动画面的样式将使其不那么引人注目。
Cyril Mottier的This blog post有更多细节。
答案 1 :(得分:0)
RefreshRatingsTask urt = new RefreshRatingsTask();
urt.execute();
这个asynctask似乎是罪魁祸首。它的操作可能需要一些时间,因此闪屏不会马上出现。注释并再次检查。
此外,在飞溅活动中做重物也不是一个好习惯。为它创建服务并在后台执行。