当Android小部件RemoteViewService被销毁时

时间:2015-07-31 11:40:51

标签: android performance android-intent android-widget

我正在处理包含Widget作为集合的ListView。我已经创建了RemoteViewService的具体实现并实现了onGetViewFactory()方法来提供RemoteViewsService.RemoteViewsFactory具体实现。

我使用以下代码将服务设置为RemoteView

Intent intent= new Intent();
intent.setAction("remote_service");
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
intent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
remoteViews.setRemoteAdapter(R.id.widget_list, intent);

我在RemoteViewFactory的具体实现中保存List对象。

查询步骤:

  • 在主屏幕上放置小部件。
  • 导致创建RemoteViewFactory。
  • 将设备置于睡眠模式。
  • RemoteViewService 现在会导致 RemoteViewFactory 收集垃圾的具体实现,因此List<String> object destorys。

请建议?

1 个答案:

答案 0 :(得分:2)

RemoteViewsServiceAppWidgetProvider一样,不会永远存在。您的RemoteViewsService方法onGetViewFactory()应该返回RemoteViewsFactory的新实例。 RemoteViewsFactory所需的任何数据都需要持久化(例如SQLiteDatabase)并根据需要进行检索。