2017-03-21 8 views
1

私はFirebas mesagingサービスクラスを使用しています。アプリケーションがフォアグラウンドで実行されているときに正しく動作しますが、最近このアプリケーションをクリアすると、プッシュ通知データにアクセスできないため、テキストビューで設定します。 アプリがバックグラウンドで実行されているときに、データをデータベースに保存したい。 値を直接格納するためにデータベースを使用しましたが、その値は機能しませんでした。通知をバックグラウンドで使用する

public void onMessageReceived(RemoteMessage message) { 


    database=new SQLiteHelper(getApplicationContext()); 
    database.open(); 
    String image = message.getNotification().getIcon(); 
    String title = message.getNotification().getTitle(); 
    String text = message.getNotification().getBody(); 
    String sound = message.getNotification().getSound(); 
    int id = 0; 
    database.addQuotes(text,"Xyz"); 

Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     final String message = extras.getString("message"); 
     quote_text.setText(message); 
     Toast.makeText(this, "A", Toast.LENGTH_SHORT).show(); 
    } 

のonCreate方法で

} MainActivity.javaで

しかし、メッセージは、NULLデータを示しています。バックグラウンドで私はアプリが実行されている場合、データベースにデータを格納したい

FirebaseMessagingServiceがプッシュと呼ばれるonMessageReceivedというメソッドを持っている拡張サービスコール:これに基づいて

+0

はあなたdatabase.addQuotes()メソッド – MadScientist

答えて

1

通知がフロントエンド(アプリケーション)で受信されましたあなたのメッセージをDBに追加してください!

@Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
..... 
// parse and add your message to Db here! 
+0

を投稿することができます参照して、あなたはOPの場合のように、通知メッセージのタイプの代わりに、データのメッセージタイプを使用している、onMessageReceivedは()でありますonMessageReceived()の通知メッセージにアクセスすることはできません。 – ultrasamad

+0

正確に私は混乱していたので、私は引用符で答えを始めた "私はアプリケーションがバックグラウンドで実行されているときにデータベースにデータを格納したい" – MadScientist

1

通常、アプリがバックグラウンドの場合、Androidは通知メッセージをシステムトレイに送信します。ユーザーが通知をタップすると、デフォルトでアプリランチャーが開きます。

通知およびデータペイロード(および通知コンソールから送信されたすべてのメッセージ)の両方を含むメッセージが含まれます。このような場合、通知はデバイスのシステムトレイに配信され、データペイロードはランチャーアクティビティの意図の余分に配信されます。

しかし、data-messagesの通知をバックグラウンドで取得したい場合はthis answeru stackoverflowを参照することができます。

あなたはまた、アプリケーションがバックグラウンドにあるときはthis

関連する問題