當推送到達時,將從FirebaseMessagingService類的onMessageReceived方法觸發後臺服務。儘管FirebaseMessagingService本身就是一個Service類,但在這種情況下,您可以使用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類設置首選項值。在這種情況下,當活動打開時,無論推送是否被單擊,您都可以檢查是否設置了首選項值,具體取決於您是否可以執行更新。
但是,如果你卸載發生的應用程序? – FABiO
有人可以幫我嗎? – FABiO
如果您卸載應用程序,則該應用程序的所有內容都將消失,包括首選項和每個其他應用程序相關數據。我不明白你的問題,卸載與你的推送通知或其他什麼有關。 – saiful103a