RecyclerView Dataset
をバックグラウンドサービスから更新する方法。 サービスはサーバーとのソケット接続を維持し、サーバーがデータで応答すると、service
はrecyclerview(MainActivityにある)で更新する必要があります。サービスからの `RecyclerView`データセットの更新
答えて
SerivceからActivityにイベントを送信する方法はたくさんあります。
私はあなたに次の方法をお勧めします。
バインドとコールバック
私はバインドとコールバックは公式の方法だと思います。
Communication between Activity and Service
Example: Communication between Activity and Service using Messaging
EventBus
私はEventBusが簡単な方法だと思います。
活動に https://github.com/greenrobot/EventBus
(または任意の):
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
protected void onResume() {
super.onResume();
BusHolder.getInstnace().register(this);
}
@Override
protected void onPause() {
super.onPause();
BusHolder.getInstnace().unregister(this);
}
@Subscribe
public void onDatasetUpdated(DataSetUpdatedEvent event) {
//Update RecyclerView
}
}
BusHolderがBusEventインスタンスを保持している:
public class BusHolder {
private static EventBus eventBus;
public static EventBus getInstnace() {
if (eventBus == null) {
eventBus = new EventBus();
}
return eventBus;
}
private BusHolder() {
}
}
イベントは掲載:
public class DataSetUpdatedEvent {
//It is better to use database and share the key of record of database.
//But for simplicity, I share the dataset directly.
List<Data> dataset;
public DataSetUpdatedEvent(List<Data> dataset) {
this.dataset = dataset;
}
}
があなたのサービスからのメッセージを送ります。
BusHolder.getInstnace().post(new DataSetUpdatedEvent(dataset));
これが役立ちます。
サービスコンポーネントの代わりにオブジェクトにデータを格納するのは良いことだと思っていないので、一時的なデータを格納するようなデータベースを使用する必要があります。ユーザーがアプリケーションに戻ったかどうかは、オブジェクトが開発プロセス全体を通して避けるべきメモリをカバーするかどうかのように、オブジェクトにリスト全体のデータを格納することは冗長です。運が良かった。
チャットのようなアプリの場合、デバイスにデータを保存する必要はありません – injecteer
サービスはsqliteサーバー(android)にデータを挿入し、recyclerviewにも更新します。 –
- 1. Recyclerviewデータセットの更新適切な方法
- 2. 更新UI MapViewからサービス
- 3. サービスからのLiveDataの更新
- 4. recyclerviewのスピナーを更新
- 5. データセットをCで変更した後にデータセットからデータベースを更新する#
- 6. 更新Socrataデータセットのメタデータ
- 7. C#データセットとDataGridViewの更新
- 8. ADO.NET型データセット行の最新の更新
- 9. 変更時のサービスからの変数の更新
- 10. データセット値から多レベルのオブジェクト値を更新する
- 11. サービスからアンドロイドを更新する
- 12. メモリモデルをサービスから更新する
- 13. 更新RecyclerView with Android LiveData
- 14. RecyclerViewアイテムスワイプの更新背景のテキストビュー
- 15. WPFのデータセットへのビューの更新
- 16. 既存のデータセットから新しいデータセットを作成する
- 17. recyclerviewの行アイテムデータを更新する
- 18. RecyclerViewのオブジェクトを更新する
- 19. RecyclerViewのアイテムビューを更新する
- 20. 23.1.1から23.2.1へのサポートライブラリ更新後のRecyclerViewアダプタのnotifyDataSetChange()の遅さ
- 21. C#データベースがデータセットから更新されていません。 SQLCommandBuilder
- 22. データセットから連続する行を更新する
- 23. サービスから複数のコントローラのデータを更新する
- 24. サービスからの角度2 - 更新コンポーネントのMVC?
- 25. サービスからアクティビティへの更新の送信方法
- 26. TopShelf Windowsサービスのメモリリーク時にSQLからの情報を更新
- 27. OracleClientデータセット・テーブルを使用したSqlClientデータセット・テーブルの更新
- 28. RecyclerViewから最新の最新値を取得する
- 29. サービスの自動更新
- 30. WCFとIIS:サービスの更新
問題を解決しようとする試みを示す – injecteer