Ich habe eine Anwendung erstellt, die Push-Benachrichtigungen von PushBots empfängt.Wie man Push-Benachrichtigungsdaten in SharedPreferences speichert und in RecyclerView anzeigt
Ich erhalte die Push-Benachrichtigungen erfolgreich, aber ich möchte die Push-Daten in SharedPreferences speichern und eine andere Aktivität mit einem RecyclerView anzeigen.
Ich kenne Content-Provider ist ein besserer Ansatz, aber ich möchte mit SharedPreferences ab sofort bleiben.
Hier ist meine benutzerdefinierte Broadcast-Receiver
public class customHandler extends BroadcastReceiver
{
private static final String TAG = "customHandler";
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
Log.d(TAG, "action=" + action);
// Handle Push Message when opened
if (action.equals(PBConstants.EVENT_MSG_OPEN)) {
//Check for Pushbots Instance
Pushbots pushInstance = Pushbots.sharedInstance();
if(!pushInstance.isInitialized()){
Log.d("Initializing Pushbots.");
Pushbots.sharedInstance().init(context.getApplicationContext());
}
//Clear Notification array
if(PBNotificationIntent.notificationsArray != null){
PBNotificationIntent.notificationsArray = null;
}
HashMap<?, ?> PushdataOpen = (HashMap<?, ?>) intent.getExtras().get(PBConstants.EVENT_MSG_OPEN);
Log.w(TAG, "User clicked notification with Message: " + PushdataOpen.get("message"));
//Report Opened Push Notification to Pushbots
if(Pushbots.sharedInstance().isAnalyticsEnabled()){
Pushbots.sharedInstance().reportPushOpened((String) PushdataOpen.get("PUSHANALYTICS"));
}
//Start Main Activity On CLicking Notification
String packageName = context.getPackageName();
Intent resultIntent = new Intent(context.getPackageManager().getLaunchIntentForPackage(packageName));
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_CLEAR_TASK);
resultIntent.putExtras(intent.getBundleExtra("pushData"));
Pushbots.sharedInstance().startActivity(resultIntent);
// Handle Push Message when received
}else if(action.equals(PBConstants.EVENT_MSG_RECEIVE)){
HashMap<?, ?> PushdataOpen = (HashMap<?, ?>) intent.getExtras().get(PBConstants.EVENT_MSG_RECEIVE);
Log.w(TAG, "User Received notification with Message: " + PushdataOpen.get("message"));
}
}
}
Also in welchem Teil stehen Sie vor dem Prob lem? – Yashasvi
Nicht in der Lage, die Zeichenfolge in geteilten Präferenzen zu speichern, auch in meinem Fragment, wo ich die RecyclerView bevölkern Ich bin nicht in der Lage, Zugriff auf die Datei mit gemeinsamen Preferences –
meine Antwort unten hinzugefügt. Guck mal. – Yashasvi