5

アクションを介して起動されるアプリケーションがありますintent-filter。問題は、イベント/アクションが発生するたびに、アプリが既に起動されている場合でも、アプリを起動するように求めるダイアログが Android に表示されることです。

私は次のような振る舞いをしたい:

  • アプリが開いていない場合、ユーザーはアプリを起動するように求められました。
  • アプリがフォアグラウンドで実行されている場合、ダイアログは表示されません。

これらの目標の両方を達成する方法はありますか? Android 4.0 をターゲットにしています。

編集

これが私の意図フィルターです:

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        </intent-filter>

       <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
        </intent-filter>

       <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"
            android:resource="@xml/device_filter" />
4

2 に答える 2

9

を に設定する必要がありActivityます。これを行うには、Android マニフェストに activity 属性を追加します。launchModesingleTask

android:launchMode="singleTask"

詳細については、ドキュメントを参照してください。

于 2013-03-04T16:43:40.100 に答える
0

ユーザーにアプリケーションの開始を求める場合は、フラグを使用します。これが最初に有効になったときにフラグを設定し、毎回このフラグがチェックされているかどうかを確認します。たとえばif (flag == 1) askusertostart() else continue;、これがあなたにとって明らかである場合はどうなりますか?

于 2013-03-04T16:22:22.520 に答える