2011-11-14 100 views
3

我想能夠點擊一個小部件並啓動一個對話框。我已閱讀官方文件作爲一些非官方文件。我最初想開展一項新的活動,但即使這樣做也失敗了。我在Logcat中看到以下內容,但我真的看不到任何東西。Android小工具onClick

11-14 21:28:47.929: INFO/ActivityManager(116): Starting: Intent { flg=0x10000000 cmp=com.android.app/.Execute bnds=[179,89][300,160] } from pid -1 

我想上面的意思是意圖通過了...但是這個活動其實並沒有開始。活動是否應該開始正常?

使用的代碼是:

public class ExampleAppWidgetProvider extends AppWidgetProvider { 

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
    final int N = appWidgetIds.length; 

    // Perform this loop procedure for each App Widget that belongs to this provider 
    for (int i=0; i<N; i++) { 
     int appWidgetId = appWidgetIds[i]; 

     // Create an Intent to launch ExampleActivity 
     Intent intent = new Intent(context, ExampleActivity.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

     // Get the layout for the App Widget and attach an on-click listener 
     // to the button 
     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout); 
     views.setOnClickPendingIntent(R.id.button, pendingIntent); 

     // Tell the AppWidgetManager to perform an update on the current app widget 
     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 
} 
} 

有什麼想法?

+0

任何這運氣?我也在觀察它。我也看到了這一點 - 當我嘗試通過從我的應用程序中放入的通知發起活動時。 我想它與進程ID顯示爲-1 通常,當通過意圖啓動一些其他活動時,進程ID不是-1,而是由OS分配的一些不同的數字。 –

+0

My問題已被解決.. pid是-1與它無關..我的實際問題是我的代碼中有一個錯字。而不是鍵入爲「XYZActivity」,我寫了「XYZACtivity」(請注意大寫字母C),因爲它被指定爲一個字符串,所以Android沒有拋出任何錯誤。也許在你的情況中也有類似的東西? –

+0

那麼,-1是什麼?你的意思是你想開始的活動拼錯了嗎?我沒有看到任何拼寫錯誤。如何在小部件點擊上啓動活動來處理意圖?或者這是不相關的? – JustCurious

回答

2

問題的最可能原因是您尚未在您的Manifest中聲明ExampleActivity

<UPDATE>

您也可以嘗試使用一個唯一的編號爲您的PendingIntent創作的參數2,也把一個明智的標誌說法4:

PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
+0

我確實..... ..... – JustCurious

+0

我已經用新的更新了答案,供您嘗試。 –

+0

我也嘗試過。沒有改變。試圖執行的活動是否有可能沒有按預期編碼?我的意思是說,我需要在將要啓動的新活動中包含一些特別的東西? – JustCurious