3
  if (messages.length > -1) {
                        int duration = Toast.LENGTH_SHORT;
                        Toast toast = Toast.makeText(context, "Message recieved: " + messages[0].getOriginatingAddress(), duration);
                        toast.show();
                        String value = "Message recieved: " + messages[0].getOriginatingAddress();

ここの私のコードはSMSを受け取ります。それをメインのアクティビティに戻したいのですが、そのアクティビティを使用して再起動することはできません (ブロードキャスト レシーバーはバックグラウンド サービスであり、この間、人々はアプリを使用します)。乾杯する代わりに、その文字列をアクティビティ(メインのものは1つしかありません)。

4

1 に答える 1

1

がフォアグラウンドにあるときだけアクティビティに通知したい場合は、SMS ブロードキャスト レシーバーから新しいブロードキャストをスローし、アクティビティでホストされているブロードキャスト レシーバーからそれをインターセプトします。

一方、アクティビティがフォアグラウンドに戻ったときにブロードキャストが送信されたかどうかを確認したい場合は、アクティビティがバックグラウンドにある間に SMS が受信されたとしても、ブロードキャスト レシーバーを使用できますが、スティッキーを追加する必要があります。後で受け取ることができる意図。

さらに、リソースを節約するために、ローカル ブロードキャスト レシーバーを使用します。

于 2013-03-26T22:21:10.280 に答える