Я хочу, чтобы мои уведомления в Firebase были активными.После нажатия на уведомление откроется новое действие под названием HomeActivity, где я хочу показать уведомление в виде текстового просмотра.
Я добавил уведомление, и оно работает хорошо.Но всякий раз, когда я нажимаю на уведомление, оно возвращается к mainActivity и не показывает сообщение в текстовом представлении.Я попробовал некоторый код, но он не работает.
вот мой код,
MyFirebaseInstanceService.class
public class MyFirebaseInstanceService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
shownotification(remoteMessage.getNotification().getTitle(),remoteMessage.getNotification().getBody());
String click_action = remoteMessage.getNotification().getClickAction();
Intent i = new Intent(click_action);
Intent in = new Intent("intentKey");
in.putExtra("key", remoteMessage);
LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(in);
Intent intent = new Intent("com.push.message.received");
intent.putExtra("message", remoteMessage);// Add more data as per need
sendBroadcast(intent);
}
private void shownotification(String title,String body){
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
String NOTIFICATION_CHANNEL_ID = "com.example.theroos.simplifiedmsging02.test";
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Notification",NotificationManager.IMPORTANCE_DEFAULT);
notificationChannel.setDescription("SIMPLIFIED");
notificationChannel.setLightColor(Color.BLUE);
notificationChannel.setVibrationPattern(new long[]{0,100,500,1000});
notificationChannel.enableLights(true);
//notificationChannel.createNotificationChannel(notificationChannel);
}
Intent activityintent = new Intent(this,HomeActivity.class);
PendingIntent contentintent = PendingIntent.getActivity(this,0,activityintent,0);
NotificationCompat.Builder notificationbuilder = new NotificationCompat.Builder(this,NOTIFICATION_CHANNEL_ID);
notificationbuilder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.ic_mode_comment_black_24dp)
.setContentTitle(title)
.setContentIntent(contentintent)
.setContentText(body)
.setColor(Color.BLUE)
.setAutoCancel(true)
.setContentInfo("Info");
notificationManager.notify(new Random().nextInt(),notificationbuilder.build());
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
Log.d("TOKEN",token);
}
}
HomeActivity.class
public class HomeActivity extends AppCompatActivity {
private Button signout_button;
private TextView message_textView;
FirebaseAuth mAuth;
private BroadcastReceiver activityReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
TextView message_textview = (TextView) findViewById(R.id.message_textView);
String message=intent.getStringExtra("message");
message_textView.setText(message);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
signout_button = (Button) findViewById(R.id.signoutbutton);
//message_textView = (TextView)findViewById(R.id.message_textView);
//message_textView.setText(getIntent().getExtras().getString("body"));
if (activityReceiver != null) {
IntentFilter intentFilter = new IntentFilter("ACTION_STRING_ACTIVITY");
registerReceiver(activityReceiver, intentFilter);
}
LocalBroadcastManager.getInstance(HomeActivity.this).registerReceiver(
activityReceiver, new IntentFilter("intentKey"));
signout_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseAuth.getInstance().signOut();
startActivity(new Intent(HomeActivity.this, MainActivity.class));
Toast.makeText(HomeActivity.this, "Successfully Signed Out", Toast.LENGTH_SHORT).show();
}
});
}
}
Я не знаю, что я сделал неправильно, пожалуйста, помогите мне.Заранее спасибо.