ここで私にとって少し紛らわしい問題があります:
クリックすると、メインアプリのアクティビティが開始され、インテントにいくつかの追加機能が追加されたホーム画面ウィジェットがあります。
Intent start = new Intent(context, Main.class);
start.putExtra("action", "showXYZ");
start.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(start);
これはすべて正常に機能し、アクティビティが開始され、アクティビティは期待どおりにエクストラを受け取ります。これらのエクストラを処理し、別のアクティビティを開始します。
ユーザーがホーム画面ウィジェットをクリックし、この方法でメイン アクティビティを開始すると、「最近のアプリケーション」メソッド (「ホーム」キーを押したまま) を使用してアプリに移動すると、エクストラでメイン アクティビティが開始され、処理が発生します。これは望ましくありません (メイン アクティビティが表示されるだけでなく、2 番目のアクティビティが開きます)。
これに対する回避策はありますか?「最近のアプリケーション」メソッドからアプリを起動するときは、最後のエクストラ セットなしでメイン アクティビティを単純に開始したいと考えています。
助けてくれてありがとう!r3mo
注:私はAndroid 1.5を使用しています
編集:
ここで回避策を見つけました: Android はインテント エクストラをキャッシュし続けます。新しいエクストラを保持する保留中のインテントを宣言する方法は?
ウィジェットによって設定されたインテントにタイムスタンプを付け、そのタイムスタンプが Main.java で最新のものであることを確認します。もしそうなら、私は処理を進めます。そうでない場合は、Main.java アクティビティのみを表示します。
これに対する公式の解決策があるかどうかを知りたいです。