0

サービスを介してバックグラウンド タスクを実行するアプリケーションに取り組んでいます。その中にいくつかのデータ要素を示すリストがあります。私のシナリオは次のとおりです。

1- ユーザーが bg で実行するものを設定し、アプリを閉じずにこの状態のままにします。

2- バックグラウンド プロセスが開始され、作業が完了して終了します。しかし、リストにはユーザーが入力したタスクが表示されたままです。リストから削除する必要がありました。

これこそまさに私が達成したい機能です。どうすればそれを達成できますか?

ユーザーが他の画面に移動するなどのアクションを実行した場合、表示する新しいリストを取得するようにコーディングしました。ただし、ユーザーが何かをスケジュールした後にアイドル状態のままにすると、ビューは更新されません。これから私を助けてください。どんな助けでも大歓迎です。

4

2 に答える 2

0

リストアダプタでnotifyDataSetChanged()を呼び出します。

notifyDataSetChanged()基になるデータが変更され、データセットを反映するビューが自動的に更新される必要があることをアタッチされたオブザーバーに通知します。

アンドロイド。notifyDataSetChanged()メソッドとListViewsはどのように機能しますか?。受け入れられた答えは、リンクに良い説明があるということです。

于 2013-03-13T12:21:49.013 に答える
0

問題を解決するには、BroadcastReceiver で Service を使用する必要があると思います。

// Register Broadcast Receiver
        IntentFilter filter = new IntentFilter(MyService.MYOWNACTIONFILTER);
        registerReceiver(myReceiver, filter);

サービスでは、送信する必要があります

Intent intent = new Intent();
    // Bundle the counter value with Intent
    intent.putExtra("key", data);
sendBroadcast(intent); // finally broadcast

バックグラウンド操作が完了した後。

そして最後に

あなたのサービス呼び出しアクティビティで

private BroadcastReceiver myReceiver = new BroadcastReceiver() {

    public void onReceive(Context context, Intent intent) {
           // do your operation and refresh the list
        }
   }

これがうまくいくことを願っています。

于 2013-03-13T13:02:44.927 に答える