내 SplashScreenActivity
에 문제가 있습니다. 휴대 전화에서 응용 프로그램을 시작하면 약 0.5 초 동안 흰색 화면이 표시됩니다. MainActitivy
은 FragmentActivity
으로 확장되고 AndroidManifest
에는 SplashScreenActivity
이 런처로, 세로 모드는 screenOrientation
으로 선언됩니다.스플래시 화면 앞에 흰색 화면이 있습니다
코드 :
public class SplashScreenActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splashscreen);
randomSplash();
Thread splashscreen = new Thread() {
public void run() {
try {
Thread.sleep(1000);
Intent mainScreen = new Intent("com.rm.jkrm.MAINACTIVITY");
startActivity(mainScreen);
} catch (InterruptedException e) {
} finally {
finish();
}
}
};
splashscreen.start();
}
private void randomSplash(){
Random random = new Random();
int i = random.nextInt(4);
LinearLayout ln = (LinearLayout) findViewById(R.id.splashscreen);
switch(i){
case 1:
ln.setBackgroundResource(R.drawable.splash1);
break;
case 2:
ln.setBackgroundResource(R.drawable.splash2);
break;
case 3:
ln.setBackgroundResource(R.drawable.splash3);
break;
default:
ln.setBackgroundResource(R.drawable.splash0);
break;
}
}
}
XML :이 내가 생각하는 대신 을 아주 좋은 아이디어를 사용 핸들러를 잠을 잘 수있는 문제의 UI 스레드가
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/splashscreen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
MAINACTIVITY의 주요 스레드에서 과중한 작업을 수행하고 있습니까? –
아마도'R.drawable.splashXXX' 리소스가 매우 커서로드하는 데 많은 시간이 걸릴 것입니다. –
@vmironov에 동의합니다 – moDev