シンプルなパンチイン/パンチアウトタイムレコーダーアプリを作りました。アプリの状態(タイムアウト/タイムイン)を切り替えるショートカットをホーム画面に作成するオプションをユーザーに追加したいのですが、このショートカットでアプリを画面上で開く必要はまったくありません。
ここに私の setupShortcut() があります
private void setupShortcut() {
Intent shortcutIntent = new Intent(this, Toggle.class);
// shortcutIntent.setClassName(this, Toggle.class.getName());
shortcutIntent.putExtra(EXTRA_KEY, "ToggleShortcut");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ToggleShortcut");
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.app_sample_code);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
setResult(RESULT_OK, intent);
}
Toggle.class は、状態を切り替えるアクティビティです。マニフェストには、これらの設定があります
<activity android:name=".Toggle" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar">
今のところ、ホーム画面にショートカットを作成して押すことができます。初めて押すと、Toggleアクティビティが開始され、正常に完了しますが、画面上にTimeClockアクティビティも開きます. 戻るボタンを押すと、ホームに戻ります。このショートカットを押すと、Toggle アクティビティが開始され、画面は変更されません。追加する前に:shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 毎回 TimeClock アクティビティを開きます。今は初めてです。しかし、トグルショートカットが押されたときに画面に何も表示されないようにしたい. それを取り除く方法を知っている人はいますか?