2016-05-06 17 views
0

から放送を受信します。私はすべてをやったと思うけど、うまくいきません。何が間違っているのか教えていただけますか?は、私は、通知が到着したときの断片にブロードキャストを送信しようとする通知

if (code == 1) { 

       int id = Integer.parseInt(data[1]); 
       int idMessage = Integer.parseInt(data[2]); 
       String user = data[3]; 
       String messageChat = data[4]; 
       Intent intent2 = new Intent(arg0, ChatMainActivity.class); 
       intent2.putExtra("alert", true); 
       intent2.putExtra("userId", id); 
       intent2.putExtra("messageId", idMessage); 
       intent2.putExtra("userName", user); 
       intent2.putExtra("message", messageChat); 
       intent2.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); 
       intent2.setAction("mac.baseline.baselinemobile.BroadcastReceiver"); 
       sendBroadcast(intent2); 

       PendingIntent pIntent = PendingIntent.getBroadcast(arg0, 0, 
         intent2, 0); 

       boolean isRunning = isApplicationRunning(); 

       if (isRunning) { 
        intent2 = new Intent(arg0, AlertReceiver.class); 
        pIntent = PendingIntent.getBroadcast(arg0, 0, intent2, 0); 
       } 
       Notification notification = new NotificationCompat.Builder(arg0) 
         .setContentTitle("Baseline™") 
         .setContentText("Nowa wiadomość od: " + user + ": " + messageChat) 
         .setSmallIcon(R.drawable.alert2) 
         .setTicker(newItems) 
         .setContentIntent(pIntent).build(); 

、これは私が私の断片でそれを受け取る方法です:

private BroadcastReceiver mReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.e(TAG, "onReceive: works!"); 
     } 

}; 
public void onResume() 
{ 
    super.onResume(); 
    IntentFilter filter = new IntentFilter(); 
    filter.addAction("mac.baseline.baselinemobile.BroadcastReceiver"); 
    LocalBroadcastManager.getInstance(getActivity()). 
      registerReceiver(mReceiver, filter); 
} 

public void onPause() 
{ 
    super.onPause(); 
    LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mReceiver); 
} 
+0

)の代わりに、onPause() – Masum

+0

いや、それは – Bartos

答えて

1
この行を書くこれは私が放送送信方法です

アプリの使い方がわかりません。しかし、あなたはする必要があります..

LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

そして、onCreate()メソッドとonDestroy()メソッドでregisterおよびunregister操作を行います。 onDestroy(から自分の放送受信機の登録を解除

+0

ありがとう! :) できます – Bartos

1

LocalBroadcastManager.getInstance(getApplicationContext).sendBroadcast(intent2); 

代わりの

sendBroadcast(intent2); 
+0

おかげでこの事ではありません! :)それは動作します – Bartos

関連する問題