Intent i = new Intent(context, MainActivity.class);
i.setAction(YOUR_AWESOME_ACTION);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
rootView.setOnClickPendingIntent(R.id.imgDistiFlag, pi);
appWidgetManager.updateAppWidget(widgetId, rootView);
及以下是onReceive函数的代码
if (intent.getAction().equals(YOUR_AWESOME_ACTION)) {
Intent intn = new Intent (context, MainActivity.class);
intn.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity (intn);
}
答案 0 :(得分:0)
你不需要那个。对于"只是"从你的widget类打开一个Activity就足够了:
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.imgDistiFlag, pendingIntent);
编辑错误的清单声明:
您的窗口小部件不是活动,因此您无法将其设置为清单中的活动。你必须使用接收器。
<receiver
android:name="com.wapp.MyWidgetProvider"
android:icon="@drawable/ic_launcher"
android:label="lbl" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_xml" />
</receiver>
您的 widget_xml 文件(dp值适用于4x1小部件):
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="1000"
android:initialLayout="@layout/your_widget_layout_xml">
</appwidget-provider>