ole*_*men 12 android android-activity android-appwidget
像这样的代码效果很好.
Intent configIntent = new Intent (context, WidgetConfigActivity.class);
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pIntent = PendingIntent.getActivity(context, 0, configIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteView.setOnClickPendingIntent(R.id.btn, pIntent);
Run Code Online (Sandbox Code Playgroud)
但是我想隐藏那个按钮,因为活动会出现,所以我试图将意图发送到小部件本身,在onReceive()方法中执行隐藏组件然后开始活动.问题是我无法startActivity()在AppWidget中使用函数.
有什么解决方案吗?
Com*_*are 17
问题是我无法在AppWidget中使用startActivity()函数.
是的你可以.您将一个Context对象传入onUpdate()(或onReceive())您的AppWidgetProvider- 调用startActivity()它.
ole*_*men 14
谢谢2 CommonsWare
还有一件事要做.context.startActivity();抛出RuntimeException这种情况.
从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志.这真的是你想要的吗?
所以你需要设置标志
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Run Code Online (Sandbox Code Playgroud)
之前.
// on receive function use this for new activity start
Intent intent = new Intent (context, AppWdget.class);
intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity (intent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8002 次 |
| 最近记录: |