您需要實現的onUpdate()和的onReceive()在你的AppWidgetProvider類方法,像這樣:
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
//Get the views for your widget layout
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.my_widget);
//Create a pending intent for a widget click
Intent intent = new Intent(context, Photos.class);
intent.setAction("PhotosAction");
PendingIntent pendingIntent =
PendintIntent.getBroadcast(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.widget_click_view, pendingIntent);
appWidgetManager.updateAddWidget(appWidgetId, views);
}
}
然後寫你的onReceive()方法來接收掛起的意圖,並啓動相關活動:
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (intent.getAction().equals("PhotosAction") {
//Received photos action action, start your target activity
Intent i = new Intent(android.provider.Settings.ACTION_SETTINGS);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
來源
2011-08-12 07:43:43
Jer
謝謝!有效!出於某種原因,雖然它沒有在HTC Sense上工作,但我覺得這可能只是Sense的東西,因爲它在我的模擬器中工作。另外,假設我希望它啓動照片應用程序,我將如何着手搞清楚系統定義的意圖。感謝您的幫助 – natehoch96
您是否正在嘗試查看圖像,即您有URI並希望啓動查看器,如果是這樣的話,請查看以下問題:[link](http://stackoverflow.com/questions/2954594 /啓動意圖 - 行動 - 視圖 - 意圖 - 不工作 - 在保存的圖像文件)。我不確定您可以依賴「系統定義的意圖」,因爲不同的製造商可能會提供他們自己的圖庫應用程序,例如HTC,三星.. – Jer