我已创建自定义通知。在这个通知中,我有一个按钮。我的问题是,当我点击按钮时,我似乎无法将任何额外的内容传递给新类。
这是我在按钮上使用的代码:
// notification button
Intent switchIntent = new Intent(context, SecondClass.class);
switchIntent.putExtra("passThis", passThisValue);
PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(context, 0, switchIntent, 0);
contentView.setOnClickPendingIntent(R.id.button, pendingSwitchIntent);
我想要额外的课程:
public class SecondClass extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String id = extras.getString("passThis"); } }
Bundle总是空的。我只发布了我认为问题所在的部分代码,如果你需要完整的代码,我会编辑我的帖子。
我这样做不正确吗?我应该如何将值传递给通知按钮事件中的类?
答案 0 :(得分:1)
试试此代码
Bundle bundle = new Bundle();
bundle.putString("passThis", passThisValue);
switchIntent.putExtras(bundle);
答案 1 :(得分:1)
上面的代码没有将数据作为bundle传递它只是作为意图额外....你必须调用
getIntent().getStringExtra("YOURKEY");
答案 2 :(得分:0)
如果你想从通知中获取传递的Bundle将onNewIntent覆盖到你的活动,就像下面的代码一样。希望这有帮助。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Bundle extras = intent.getExtras();
if(extras!=null) {
String id = extras.getString("passThis");
}
}
答案 3 :(得分:0)
我为我的一个邻居做了一个关于这个的教程,以防你想要查看它。这是link