0
我的主要活動有以下代碼應用程序創建主屏幕上的多個快捷
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
…
homescreenShortcut();
}
private void homescreenShortcut() {
Intent shortcutIntent = new Intent();
shortcutIntent.setClassName(this, this.getClass().getName());
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.addCategory(Intent.ACTION_PICK_ACTIVITY);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "MyApp");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.app_icon));
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
}
我每次啓動應用程序,它創建的主屏幕上一個新的快捷方式。有沒有一個標準或簡單的方法來確保只有一個主圖標被創建?
我想卸載以前(如果有)然後(重新)安裝。但這似乎是一個過度殺傷力。
不從創建每次調用homescreenShortcut()。創建一個布爾標誌並將其存儲在共享的首選項或某處,表明您已創建了1快捷方式,然後將該調用在檢查該標誌的if語句中包裝爲「homescreenShortcut()'。除了所有這些,你真的不應該像這樣自動創建快捷方式。如果用戶想要一個快捷方式,我認爲你可能會惹惱更多的人,而不是通過做這個自動快捷方式來幫助你。 – FoamyGuy
我同意,你不應該這樣做的用戶。讓用戶自己做。對不起,但如果這發生在我身上,我很可能會刪除該應用程序。 –
謝謝。但我實際上並沒有制定規則。我正在爲其他人開發一個項目。 –