0

Android 開発を始めたばかりで、レシーバー クラスとアクティビティ クラスの間の通信について質問があります。私は Java と Android に非常に慣れていないので、愚かに聞こえないことを願っています。SMS メッセージを傍受し、その SMS のさまざまな要素に基づいて、受信トレイに保存されたら削除するアプリケーションを開発しています。私はtxtメッセージをインターセプトするレシーバークラスを持っています。また、現時点では、ボタンを使用してアクティビティクラスのコードを使用して、受信トレイからメッセージを削除することもできます. 私が抱えている問題は、受信者クラスと、メッセージを削除するコードが存在するアクティビティ クラスとの間の通信です。私はそのコードをレシーバー クラスに直接入れてみましたが、ほとんどの人はすでに BroadcastReceiver クラスにはないことを知っていると思います。メッセージを削除するために必要なものをサポートしていないようです。これに対する答えをしばらく探していましたが、何も見つかりませんでした。正直なところ、JAVA と Android について、解決策を見たとしても認識できるほど十分に知っているかどうかはわかりません。

4

2 に答える 2

0

IntentServiceを使用してメッセージ処理ロジックを実装できます。受信者が新しい着信メッセージを受け取ったら、メッセージデータを使用してインテントを渡すIntentServiceを開始します。

レシーバー

onReceive(Context context, Intent intent) {
    //Setup Intent
    Intent i = new Intent(context, MyIntentService.class);
    i.setAction(MyIntentService.HANDLE_MESSAGE);        
    //Pass data to intent
    i.putExtra(MyIntentService.MESSAGE_DATA, data);
    //Start Intent Service          
    context.startService(i);
}

MyIntentService

onHandleIntent(Intent i){
    String action = i.getAction();
    if(action != null && action.equals(MyIntentService.HANDLE_MESSAGE){
        //Get data and implement message logic
    }
}

それが役に立てば幸い。

于 2012-10-04T16:58:39.457 に答える
0

インターフェイスなしでジョブを完了する必要があるService場合は、ユーザー インターフェイスが必要な場合はを作成することを検討してください。Activity

レシーバーContextのメソッドのパラメーターを使用して、新しいサービス/アクティビティを開始できますonReceive

Extrasコンテキスト間でパラメーターを渡すために使用できます。したがって、メッセージ ID またはメッセージ全体を追加して、サービス/アクティビティに渡し、そこで処理することができます。

于 2010-07-14T22:04:46.383 に答える