2011-05-01 73 views
1

我有一個小部件,我試圖構建,只包含一個按鈕。我想要做的是點擊按鈕,然後運行一些簡單的代碼(在我的測試中,它是一個吐司警報)。它似乎最初工作正常,但突然按鈕停止響應點擊。手機睡着後,我一直注意到它。這是我的AppWidgetProvider代碼。AppWidget按鈕onClick停止工作

的onUpdate:

for (int appWidgetId : appWidgetIds) { 
    RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.my_widget); 
    Intent intent = new Intent(context, MyNewWidgetProvider.class); 
    intent.setAction("MyCode"); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 
    remoteView.setOnClickPendingIntent(R.id.my_btn, pendingIntent); 

    AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, remoteView); 
} 

的onReceive:

super.onReceive(context, intent); 

if (intent.getAction().equals("MyCode")) {   
    Toast toast = Toast.makeText(context, "It worked", Toast.LENGTH_SHORT); 
    toast.show(); 

} 

我相當爲難,所以如果有人能幫助我指出正確的方向我將不勝感激。就像我說的,它可以正常工作,直到手機睡着了一兩分鐘,然後它完全停止響應點擊。

謝謝!

回答

1

待處理意圖在每次使用後「燒燬」。您需要重新設置。或者等待小部件刷新,然後它也會發生,但這可能不是所需的方式。

+0

如果是這樣的話,這個小部件只能工作一次。等待的意圖似乎只有在手機已經睡了一段時間後纔會被燒燬。 – faizal 2014-07-16 06:04:28

+0

嗨@Mark,你知道這個問題的解決方案嗎?我繼續搜索,但找不到任何解決方案。此外,我是新來的Android,並致力於跨平臺的移動應用程序。 – 2017-02-13 10:11:02

+0

@MuhammadMehdiRaza沒有工作,沒有。如果我沒有記錯的話(即將近6年前),它在觸發/燒燬後再次設置意圖時確實奏效。 – Mark 2017-02-14 10:59:22