アプリには実際に3つのアクティビティがあります。
アクティビティを作成し、ハンドラーを使用して SPLASH SCREEN として作成しました。
つまり、マイ スプラッシュ スクリーンが 3 秒間表示された後、アプリのメイン ライフサイクルが続行されます。それまでは完璧です。
私の問題は、スプラッシュ画面の読み込み中に向きを変えると、アプリ全体がクラッシュすることです。
私の要件は、横向きと縦向きの両方のモードでアプリをロードすることです。
onConfigの変更などを試みましたがだめでした…。
私の悲しい話はすべてここに含まれています....
public class Asplash extends Activity{
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
try {
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
finish();
Intent i = new Intent(Asplash.this, Example.class);
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);
}
}, 3000);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
handler.removeCallbacksAndMessages(null);
finish();
super.onPause();
}
}
マニフェスト ファイルは次のとおりです。
<activity android:name=".Asplash"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
android:configChanges="orientation">
<intent-filter >
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.example.Example"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
この「Asplash」アクティビティを横向きと縦向きの両方で表示したいだけです。また、LAYOUT と LAYOUT-LAND の両方のフォルダに "splash" 用の XML ファイルを作成してみました。
実際、ANDROIDでは、基本的な例のように、ORIENTATIONの変更に合わせて自動的に調整されるはずですが、なぜここで機能しないのか理解できません...