特定のフローで Android デバイスにアプリケーションをインストールしているときに、Android アプリケーションで非常に奇妙なバグを発見しました。
playstore(旧バージョン)からアプリをインストールしました。
アプリケーションを起動しました (今、私はホームスクリーンにいます.ie,
HomeActivity
)。今、最新のビルドをインストールしてアプリをアップグレードしました(製品ビルドで、まだプレイストアにリリースされていません)。
ランチャー アイコンをクリックし、ホーム画面が表示されるまで待ち、メニュー ボタンを押してアプリをバックグラウンドに保ちます。
次に、ランチャー アイコンをクリックしてアプリケーションを起動します。
この場合、Splash Screen( Activity
) が起動され、ホーム画面に移動します。ログでonStop()
は、HomeActivity の呼び出しが行われます。これは、Activity が破棄されないことを意味します。そのため、ランチャー アイコンをクリックすると、HomeActivity が再開され、代わりに、splashActivity が再作成されます。しかし、バックグラウンドからアプリを起動すると、アクティビティが再開され、スプラッシュ画面が表示されません。それは正しい行動ですか?もしそうなら、私は へのコールバックを取得していませんonDestroy()
。
以下は、マニフェスト内の私のアクティビティ コードです。
<activity
android:name="com.app.ui.HomeActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout|uiMode"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing">
</activity>
<activity
android:name="com.app.ui.SplashActivity"
android:label="@string/app_name"
android:screenOrientation="sensorPortrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
起動モードを に設定しませんでしたSplashActivity
。そしてしばらくすると正常になり、スプラッシュ画面が表示されなくなります。
また、アプリをバックグラウンドで起動するか、戻るボタンを押してからアプリのアイコンをクリックしても、このバグは再現されません。これは、ランチャー アイコンをクリックしたときにのみ発生し、アプリをバックグラウンドに保ち、しばらくすると適切になります。
また、アップデートせずにアプリをインストールしたところ、この問題は発生しませんでした。APKを更新したときのみ、これが発生します
なぜこれは最初の起動で発生するのですか..それはアンドロイドのバグですか..?もしそうなら、この問題を回避する方法..