字符串参数未从本地通知发送到活动
Posted
技术标签:
【中文标题】字符串参数未从本地通知发送到活动【英文标题】:String parameters not sending to activity from local notification 【发布时间】:2019-06-28 14:22:49 【问题描述】:我目前正在尝试发送带有操作的本地通知。选择时,该操作会将字符串推送到活动。不幸的是,当我尝试传递一个字符串时,我无法在活动中接收它,我有多个带有不同对象的日志语句,以查看系统是否可能将其识别为其他东西,但没有运气。当我尝试将其作为捆绑发送时的事件,发送的是捆绑包而不是字符串!如果我通过一个 int 效果很好!任何帮助将不胜感激,是的,我一直在为此研究并尝试了多种解决方案。
代码:
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setAction("action");
intent.putExtra("idforaction", 12345);
//intent.putExtra("test", "test message");
Bundle bundle = new Bundle();
bundle.putString("othertest","test message 2");
intent.putExtra("test", bundle);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
主活动:
int notificationNum = getIntent().getIntExtra(idfoaction, -1);
Log.e(TAG, "get Extras " + notificationNum);
Log.e(TAG, "STRING? " + getIntent().getStringExtra("test"));
Log.e(TAG, "CHARSEQ? " + getIntent().getCharSequenceExtra("test"));
Log.e(TAG, "CHARS?" + (getIntent().getCharArrayExtra("test") != null ? getIntent().getCharArrayExtra("test").length + "" : "null"));
Log.e(TAG, "PARCELABLE?" + (getIntent().getParcelableExtra("test") != null ? getIntent().getParcelableExtra("test").toString(): "null"));
Log.e(TAG, "BUNDLE?" + (getIntent().getBundleExtra("test") != null ? "not null" : "null"));
Log.e(TAG, "BUNDLE?" + (getIntent().getExtras() != null ? "not null" : "null"));
if (getIntent().getExtras() != null)
Log.e(TAG, "bundle " + getIntent().getExtras().getString("othertest", ""));
Log.e(TAG, "bundle " + getIntent().getExtras().get("othertest"));
【问题讨论】:
检查这个库。基于注解,还涉及 Intent 数据绑定:github.com/kostasdrakonakis/android_navigator 【参考方案1】:试试这个:
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("my_key", "my_key_value");
然后阅读:
Intent intent = getIntent()
String myValue = intent.getStringExtra("my_key"); // "my_key_value"
【讨论】:
感谢您的帮助!不幸的是,我尝试了这种方法,但字符串显示为空白。 @paul590 检查你用这个键放在那里的东西以上是关于字符串参数未从本地通知发送到活动的主要内容,如果未能解决你的问题,请参考以下文章
我可以在后台收听 CMPedometer 并在不同情况下发送本地推送通知吗?
使用firebase发送静默推送通知,以便在应用程序被杀死时唤醒它