Ich habe eine Service
, die nach Änderungen in der Datenbank sucht und dann Benutzer basierend auf bestimmten Faktoren benachrichtigen. Eine solche notification
hat eine Aktionstaste durch Anklicken, auf der eine BroadcastReceiver
ausgelöst wird und Activity.class
geöffnet wird.Ich kann keine Absichten von einem BroadcastReceiver erhalten
Hier ist, wie:
public class MyBroadcastReceiver extends BroadcastReceiver {
public MyBroadcastReceiver(){
super();
}
@Override
public void onReceive(final Context context, Intent intent) {
if (intent.getAction() != null && intent.getAction().equals(getString(R.string.broadcast_id_for_rating))) {
Intent resultIntent = new Intent(getBaseContext(), Activity.class);
resultIntent.putExtra("abc", "abc");
resultIntent.setType("text/plain");
resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(resultIntent);
} else {
Toast.makeText(context, "Intent is null.", Toast.LENGTH_SHORT).show();
}
}
}
Hier ist, wie ich versuche Absicht in einer ViewHolder
Klasse von dieser Activity.class
genannt zu erhalten:
public class RModelClass extends AbstractItem<RModelClass, RModelClass.ViewHolder> {
public RModelClass() {}
@Override
public int getType() {
return R.id.recycler_view_r;
}
@Override
public int getLayoutRes() {
return R.layout.r_played;
}
@Override
public void bindView(final RModelClass.ViewHolder holder, List payloads) {
super.bindView(holder, payloads);
String abc;
Intent intent = new Intent();
if (intent.getExtras() != null) {
openForRating = intent.getExtras().getString("abc");
if (abc != null) {
Log.d("abc", "YO!!");
} else {
Log.d("abc", "NO!!");
}
} else {
Log.d("null", "INTENT!!");
}
}
protected static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView) {
super(itemView);
}
}
}
Das Problem ist, dass ich bin immer D/null: INTENT!!
Abgemeldet und nicht in der Lage, die Absicht zu erhalten.
Bitte helfen Sie mir warum ist das passiert und wie bekomme ich die Absicht?
Ich habe 'getIntent()' versucht, aber ich bekomme 'Kann Methode 'getIntent()' 'Warnung nicht auflösen. Ich habe es auch so versucht: 'holder.itemView.getContext(). GetIntent()' hat aber die gleiche Warnung bekommen. –
Wenn Sie sich in der Fragment-Klasse oder in Adapter befinden, verwenden Sie getActvity(). GetIntent() und ((Activity) -Kontext) .getIntent() für Fragment und Adapter. –
aktualisieren Sie die Antwort, so dass ich als akzeptiert markieren kann. –