2012-03-23 19 views
0

BradcastReceiverを介してアクティビティ(MyActivity)と通信する必要があるサービスがあります。 MyActivity内に含まれるbrodcastをAndroid:アクティビティとサービスの通信

private class MessaggiReceiver extends BroadcastReceiver { 
     public static final String ACTION_RELOAD = "it.android.dev.thecode.ACTION_RELOAD"; 
     @Override 
     public void onReceive(Context arg0, Intent intent) { 
      if(intent.getAction().equals(ACTION_RELOAD)){ 
       leggi_act; //Method of MyActivity 
      } 
     } 

    } 

をどのようにマニフェストに宣言する必要があります。これはBroadcastReceiverはそうintosame活動を宣言するのですか?私はit.android.dev.thecode.MyActivity.MessaggiReceiver

<receiver android:name="it.android.dev.thecode.MyActivity.MessaggiReceiver"> 
      <intent-filter> 
       <action android:name="it.android.dev.thecode.ACTION_RELOAD"></action> 
      </intent-filter> 
</receiver> 

でこのコードを使用しますが間違っている、私はit.android.dev.thecode.myactivity $ MessaggiReceiver

<receiver android:name="it.android.dev.thecode.MyActivity$MessaggiReceiver"> 
       <intent-filter> 
        <action android:name="it.android.dev.thecode.ACTION_RELOAD"></action> 
       </intent-filter> 
    </receiver> 

でこのコードを使用しましたありがとう

+0

マニフェストで宣言すると、それを実装するクラスが表示されている必要があります。つまり、privateではありません。それを別のファイルに入れ、 'public'クラスにします。 – zapl

答えて

1

あなたのマニフェストに放送受信機を登録する必要はなく、あなたの活動のonResumeにコードで登録する必要はありません。 onPauseで登録を解除して、漏れを避けることを忘れないでください。

@Override 
public void onResume() { 
    registerReceiver(mMessageReceiver, 
     new IntentFilter("it.android.dev.thecode.ACTION_RELOAD")); 
} 

@Override 
public void onPause() { 
    unregisterReceiver(mMessageReceiver); 
} 

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    Log.d("receiver", "Got broadcast: " + intent.getAction()); 
    } 
}; 
+0

私のブロードキャストは、unregisterReceiverコードをonPauseに挿入しないよりも常に機能する必要がありますか? – MimmoG

+0

あなたの活動を見ることができないときはもちろん、それはどんな放送も聞いてはいけません。 onPauseでブロードキャストを登録解除しないと、フレームワークはlogcatに警告を送り、強制的にリスニングを破棄します。したがって、事前にonPause – waqaslam

+0

の登録を解除することにより、アクティビティのライフサイクルに素敵な方がいいです – MimmoG

関連する問題