3

アプリを起動すると、スプラッシュ画面が表示される前に数秒間白い画面が表示されます。

アプリのサイズが影響するかどうか疑問に思っています (それは 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);
}
}

ありがとう

4

2 に答える 2

9

Android は、最初のアクティビティのテーマを使用してダミーのアクティビティを表示し、アプリケーションをメモリにロードします。

アプリを小さくすると、待ち時間が短縮され、テーマを使用してスプラッシュ スクリーンのスタイルを設定すると、目立たなくなります。

詳細については、Cyril Mottier によるこのブログ投稿を参照してください。

于 2013-06-19T01:34:01.543 に答える
0
    RefreshRatingsTask urt = new RefreshRatingsTask();
    urt.execute();

この asynctask が原因のようです。その操作には時間がかかる可能性があるため、スプラッシュ画面はすぐには表示されません。コメントアウトして、もう一度確認してください。
さらに、スプラッシュ アクティビティで負荷の高い作業を行うことはお勧めできません。そのためのサービスを作成し、バックグラウンドで実行します。

于 2013-06-19T01:18:02.510 に答える