我制作的小部件进入模拟器和真实设备就没问题了,但是当我点击按钮在小部件上打开一个新活动时,它没有打开,所有我进入Logcat是这样的:
10-12 12:54:23.721: I/ActivityManager(289): START u0 {dat=intent: flg=0x10000000 cmp=com.example.awesomefilebuilderwidget/.Drag_and_Drop_App bnds=[56,639][209,735] (has extras)} from pid -1
我不明白为什么它不会打开我的活动(Drag_and_Drop_App.java)这是我的AppProvider中的代码:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
Random r = new Random();
int randomInt = r.nextInt(1000000000);
String rand = String.valueOf(randomInt);
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++){
int awID = appWidgetIds[i];
RemoteViews v = new RemoteViews(context.getPackageName(), R.layout.widget);
v.setTextViewText(R.id.tvwidgetUpdate, rand);
Intent configIntent = new Intent(context, Drag_and_Drop_App.class);
PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
v.setOnClickPendingIntent(R.id.bwidgetOpen, configPendingIntent);
appWidgetManager.updateAppWidget(awID, v);
}
}
请注意,我的WidgetConfig.java中也有这个编码(安装小部件时首先弹出的屏幕会收集小部件的名称):
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String e = info.getText().toString();
RemoteViews views = new RemoteViews(c.getPackageName(), R.layout.widget);
views.setTextViewText(R.id.tvConfigInput, e);
Intent in = new Intent(c, Drag_and_Drop_App.class);
in.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID);
in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Make the pending intent unique...
in.setData(Uri.parse(in.toUri(Intent.URI_INTENT_SCHEME)));
PendingIntent pi = PendingIntent.getActivity(c, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.bwidgetOpen, pi);
awm.updateAppWidget(awID, views);
Intent result = new Intent();
result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID);
setResult(RESULT_OK, result);
finish();
}
}
如果它有帮助,这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.awesomefilebuilderwidget"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name="com.example.awesomefilebuilderwidget.AFBWidget" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_stuff"/>
</receiver>
<activity android:name="com.example.awesomefilebuilderwidget.WidgetConfig" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<activity android:name="com.example.awesomefilebuilderwidget.Drag_and_Drop" android:label="@string/app_name"></activity>
</application>
</manifest>