这样的代码效果很好。
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);
但我想隐藏按钮befor活动会出现,所以我triing在发送意图的小部件本身,进行隐藏组件onReceive()
方法,然后开始活动。 问题是,我不能使用startActivity()
在AppWidget功能。
有没有什么解决办法吗?
问题是,我不能在AppWidget使用startActivity()函数。
是的你可以。 您在传递Context
对象进入onUpdate()
或onReceive()
你的) AppWidgetProvider
-调用startActivity()
上。
由于2 CommonsWare
还有一两件事要做。 context.startActivity();
抛出RuntimeException
在这种情况下。
从一个活动上下文之外调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。 这真的是你想要的吗?
所以,你需要设置标志
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
之前。
// 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);