基本上我们有2个发射器活动。 MainActivity使用用户选择的自定义图标和名称创建快捷方式,并将SecondActivity链接到快捷方式。
由于用户选择了快捷方式图标和名称,因此没有真正的'默认图标。
但是每当我们在PlayStore中加载应用程序的更新时,默认情况下(应用程序图标和名称)都会覆盖用户创建的快捷方式的图标和名称。
默认情况下,如果活动未定义,活动将从应用程序继承图标和名称,但我们无法定义它,因为它始终由用户创建或选择。
在PlayStore上更新应用时,我们如何避免覆盖图标和名称?
来自ANDROID MANIFEST的示例
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
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=".SecondActivity"
android:theme="@android:style/Theme.NoDisplay"
android:excludeFromRecents="true"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
来自MainActivity.java的示例
Intent shortcutIntent = new Intent(getApplicationContext(), SecondActivity.class);
shortcutIntent.setAction(Intent.ACTION_VIEW);
shortcutIntent.putExtra("Something", "Blah");
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
// name is created by the user
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, aShortcut.getName()); //getName returns a String
// icon is selected by the user
BitmapDrawable icon = (BitmapDrawable) aShortcut.getIcon(); // getIcon returns a drawable
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON,icon.getBitmap());
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
this.sendBroadcast(addIntent);