Amy*_*Amy 5 android android-widget kotlin
我正在为我的WebView应用程序制作一个小部件,上面有一个按钮列表。目前,只要他们按下,它就会触发一个意图。在这个意图中,我放置了一些额外的字符串,但是当onNewIntent接收到意图时,额外的值是NULL。所以我坚持接收额外的实际字符串。
这是我的列表提供商上的代码:
override fun getViewAt(positionIndexNum: Int): RemoteViews {
........
val extrasObj = Bundle()
extrasObj.putString("shortcutUrl", listViewUrlArr[positionIndexNum]) // I've tried hardcoding this part and it still returns null.
extrasObj.putString("shortcutJs", listViewJsArr[positionIndexNum])
extrasObj.putString("shortcutId", listViewIdArr[positionIndexNum])
val fillInIntentObj = Intent()
fillInIntentObj.putExtras(extrasObj)
viewObj.setOnClickFillInIntent(listViewItemId, fillInIntentObj)
return viewObj
}
Run Code Online (Sandbox Code Playgroud)
这是该函数的代码onNewIntent:
override fun onNewIntent(intentObj: Intent) {
super.onNewIntent(intentObj)
val bundle = intentObj.extras
if (bundle != null) {
for (key in bundle.keySet()) {
Log.e("TAG", key + " : " + if (bundle[key] != null) bundle[key] else "NULL")
}
}
.....
}
Run Code Online (Sandbox Code Playgroud)
在 logcat 中输出:
shortcutUrl : NULL
shortcutId : NULL
shortcutJs : NULL
Run Code Online (Sandbox Code Playgroud)
我也尝试过:intentObj.getStringExtra("shortcutId")仍然返回NULL
编辑:
我在函数中也有这段PendingIntent代码updateAppWidget:
val clickIntent = Intent(contextObj, MainActivity::class.java)
val clickPI = PendingIntent.getActivity(contextObj, 0,
clickIntent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT);
viewsObj.setPendingIntentTemplate(R.id.widget_list, clickPI)
Run Code Online (Sandbox Code Playgroud)
Amy*_*Amy 19
我终于找到了解决这个问题的方法,我不确定它是如何工作的,但我改变了:
PendingIntent.FLAG_IMMUTABLE
Run Code Online (Sandbox Code Playgroud)
到
PendingIntent.FLAG_MUTABLE
Run Code Online (Sandbox Code Playgroud)
在里面PendingIntent。希望这对其他人有帮助!
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |