Android 悬挂式帐篷在约20分钟后丢失

Android 悬挂式帐篷在约20分钟后丢失,android,android-intent,android-widget,Android,Android Intent,Android Widget,我正在尝试做的小部件,这将更新自己点击。 Co,我创建了以下代码,它像一个符咒一样工作-但只有大约20分钟,然后它就停止工作了(它不再在单击时更新,而是在XML工作中的指定时间后,经典的小部件自我更新) 如果我添加另一个widget实例,它会再次开始工作,然后所有意图都会再次注册 还有其他人面临过这个问题吗?你能看到我的代码有问题吗 在我的小部件提供程序中: @Override public void onUpdate(Context context, AppWi

我正在尝试做的小部件,这将更新自己点击。 Co,我创建了以下代码,它像一个符咒一样工作-但只有大约20分钟,然后它就停止工作了(它不再在单击时更新,而是在XML工作中的指定时间后,经典的小部件自我更新) 如果我添加另一个widget实例,它会再次开始工作,然后所有意图都会再次注册

还有其他人面临过这个问题吗?你能看到我的代码有问题吗

在我的小部件提供程序中:

        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                int[] appWidgetIds) {
            super.onUpdate(context, appWidgetManager, appWidgetIds);

            final int N = appWidgetIds.length;
            Log.d(tag, "onUpdate");

            for (int i=0; i<N; i++) {
                int appWidgetId = appWidgetIds[i];

                RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_exchange_rate_small);

                Intent intent = new Intent(context, ExchangeRateWidgetService.class);
                intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
                PendingIntent pendingIntent = PendingIntent.getService(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);

                // Register onClick action for pendingIntent
                views.setOnClickPendingIntent(R.id.wdExchangeRate, pendingIntent);

                appWidgetManager.updateAppWidget(appWidgetId, views);


                try {
                    // Perform first update
                    pendingIntent.send();
                } catch (CanceledException e) {
                    Log.e(tag, "First update has been canceled, this should not normally happend!");
                    e.printStackTrace();
                }
            }

我想我已经解决了,问题出在
IntentService
,服务通过远程视图更新了widget,但没有注册
setonclickpendingent

你使用PendingEvent.send()调用做什么?它自己执行更新,调用将检索数据和更新小部件的服务。
 public class ExchangeRateWidgetService extends IntentService {

    protected void onHandleIntent(Intent intent) {

    // Doing something ...

    }
    }