我有一个问题,我真的理解推送通知的功能和它们的使用;但是,我有这种情况,当推送通知到达时,我完美地点击它,我更新活动,我的问题是推送通知到达,用户没有推送推送通知,而是直接打开应用程序;当发生这种情况时,活动不会更新。有没有什么嵌入式或实验性的方法可以让后台的活动在我点击推送时更新它的功能?
简而言之,我寻找的是当推送到来时,更新活动(后台)的组件,当打开应用程序时,应该在不需要按下推送通知的情况下更新应用程序;也就是说,推送通知将只提供信息,但用户不会推送通知,但它将打开应用程序,并在其中修改操作,就像它按下推送一样。
谢谢并致以问候。
发布于 2016-11-22 02:50:43
当推流到达时,通过您的FirebaseMessagingService类的onMessageReceived方法触发后台服务。尽管FirebaseMessagingService本身是一个服务类,但在这种情况下,您可以只使用您的FirebaseMessagingService类。在此场景中,当您的后台任务完成后,您将通过推送通知用户。
下面是关于如何使用FirebaseMessagingService类解决这个问题的基本框架。
public class PushFirebaseMessagingService extends FirebaseMessagingService {
// Define the listener interface
interface BackgroundTaskCompletionListener<T> {
void requestComplete(T object);
}
@Override
public void onMessageReceived(final RemoteMessage remoteMessage) {
doBackgrundTask(new BackgroundTaskCompletionListener<Boolean>(){
@Override
public void requestComplete(Boolean object) {
}
});
notifyUser(remoteMessage);
}
public void doBackgrundTask(BackgroundTaskCompletionListener mBackgroundTaskCompletionListener){
boolean taskcomplete = false;
//do your task
if(mBackgroundTaskCompletionListener!=null){
mBackgroundTaskCompletionListener.requestComplete(taskcomplete);
}
}
public void notifyUser(RemoteMessage remoteMessage){
//your notification
}
}不过,另一种快速解决问题的方法是从FirebaseMessagingService类中设置首选项值。在这种情况下,当activity打开时,您可以检查是否设置了首选项值,无论是否单击了推送,您都可以进行更新。
https://stackoverflow.com/questions/40726682
复制相似问题