完全に書き直すためにレガシーアプリを採用した結果、開始アクティビティの名前が変更されました。ホーム画面からアプリへのショートカットを配置したユーザーに対処するためにactivity-alias
、古い名前から新しい名前を指すを追加しました。
以前:
<activity
android:name=".SplashScreenActivity"
android:theme="@style/Theme.Styled.NoAnimation" />
今:
<activity
android:name=".activities.StartActivity_"
android:theme="@style/Theme.Styled.NoAnimation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name=".SplashScreenActivity"
android:exported="true"
android:targetActivity=".activities.StartActivity_"/>
これは、2.1から4.0の間でテストしたさまざまなデバイスに最適です。ただし、Jelly Bean(4.1および4.2)では、デフォルトのランチャーが起動アイコンを削除していることがわかります。
さらに悪いことに、一部のテストでは、アップグレードによってアプリがまったく表示されず、 2回目のインストールのアプリケーションリストからのみ表示されます。韻や理由はないようです。時々アプリが行方不明になります。
私はIntentFilter
:を交換することをいじくりまわしました
<activity
android:name=".activities.StartActivity_"
android:theme="@style/Theme.Styled.NoAnimation" />
<activity-alias
android:name=".SplashScreenActivity"
android:exported="true"
android:targetActivity=".activities.StartActivity_" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
ADBはそれをあまり好まないようです:
ランチャーアクティビティが見つかりません!
起動すると、デバイス上のアプリケーションパッケージのみが同期されます。
完全を期すために:両方のアクティビティ名にを追加するIntentFilter
と、ホーム画面のショートカットが保持されますが、アプリケーションリストに2つのアプリが表示されます。
移行してすべてのユーザーを満足させるにはどうすればよいですか?