我试图在Android中实现推送通知,下面是我的receiver
代码
public class MessageReceiver extends BroadcastReceiver {
public void onReceive(Context ctx, Intent intent) {
Intent myIntent = new Intent(ctx, MainActivity.class);
myIntent.putExtra("skipList", true);
PendingIntent pendingIntent = PendingIntent.getActivity(
ctx, 0, myIntent, 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(ctx)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(intent.getExtras().getString("subject"))
.setContentText(intent.getExtras().getString("cover"))
.setContentIntent(pendingIntent);
mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
NotificationManager mNotificationManager = (NotificationManager)ctx.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
}
因此,从上面的代码我将数据skipList = True
添加到intent myIntent
我只想在我的MainActivity.java
文件中检索此数据,如下所示
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent iin= getIntent();
Log.v("<<<<<<<<<<<<iiiiiiiii>>>>>>>>>>>>>>>>",iin.toString());
Bundle b = iin.getExtras();
Log.v("<<<<<<<<<<<<bbbbbbbb>>>>>>>>>>>>>>>>",b.toString());
String wow = b.getString("skipList");
Log.v("<<<<<<<<<<<<wowowowoow>>>>>>>>>>>>>>>>",wow.toString());
}
但是我无法从意图中获取数据我做错了什么?
答案 0 :(得分:1)
您正在使用带有布尔参数的putExtra,但您将其作为String检索。
您需要使用getBooleanExtra()
方法获取它。
只需替换此行:
String wow = b.getString("skipList");
用这个:
boolean wow = b.getBooleanExtra("skipList");
答案 1 :(得分:0)
您正在boolean
中传递putExtra
并尝试将其作为字符串检索。
我认为this教程可能对您有所帮助,以获得更多关于您可以用意图做什么的知识
答案 2 :(得分:0)
您正在传递布尔值,因此您应该读取布尔值 使用以下代码
getIntent().getBooleanExtra("skipList", defaultValue);
这可能会对你有帮助。
答案 3 :(得分:0)
在代码中,您通过intent传递布尔数据,但将其作为字符串获取: 试试这个,
boolean isSkipList = getIntent().getExtras().getBoolean("skipList");
(或)
替换以下行:
String wow = b.getString("skiplist");
这一行:
boolean wow = b.getBoolean("skiplist");
答案 4 :(得分:0)
你应该写
boolean wow = b.getBooleanExtras("skipList");
或
myIntent.putExtra("skipList", "true");