私は現在、アクティビティを開始するブロードキャストレシーバーにインテントを送信しています。
次に、同じサービスから、アクティビティ内のブロードキャストレシーバーに別のインテントが起動されます。
問題は、アクティビティが有効になる前に起動され、ブロードキャストレシーバーが登録されているため、アクティビティが意図したインテントを取得していないことです。
インテントを送信する前に、アクティビティが有効であることを確認する方法はありますか?
またはこれに対する他の解決策はありますか?
私は現在、アクティビティを開始するブロードキャストレシーバーにインテントを送信しています。
次に、同じサービスから、アクティビティ内のブロードキャストレシーバーに別のインテントが起動されます。
問題は、アクティビティが有効になる前に起動され、ブロードキャストレシーバーが登録されているため、アクティビティが意図したインテントを取得していないことです。
インテントを送信する前に、アクティビティが有効であることを確認する方法はありますか?
またはこれに対する他の解決策はありますか?
まだ生きていないのなら、なぜ活動を始めないのですか?
実行されていない場合に新しいアクティビティを開始する、またはバックグラウンドで既に実行されている場合にアクティビティ スタックを前面に移動する一般的なメカニズムは、startActivity() 呼び出しで NEW_TASK_LAUNCH フラグを使用することです。
それか、インテントを起動する前にアクティビティを開始する機会を与えるだけです。
または、sendOrderedBroadcastを使用してブロードキャストからデータを取得し、場合によっては再試行することもできます。
public abstract void sendOrderedBroadcast (Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)