如何从服务刷新列表视图?

时间:2013-05-29 12:53:32

标签: android listview android-service

在我使用Service的应用程序中,我从活动A启动服务,我在活动A中有列表视图,如何刷新服务中的列表视图?

活动A

// in this class I have list view
Intent service = new Intent(Activity_A.this, Time_out_services.class);
startService(service);

服务类

public class Time_out_services extends Service{

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO do something useful

        mHandler.postDelayed(first_Task, 2*60 * 1000);

        return Service.START_NOT_STICKY;
    }

    Runnable first_Task = new Runnable() {
        public void run() {

            // I want to refresh the list view here
        }
    };

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

在你的活动中定义一个用于更新listveiw的broadcastReceiver,你也应该有一个parcle内容的类,你想要从服务添加到listview,你应该定义一个实现Parcelable的类,然后putextra到intent,然后发送意图从服务中接收,然后在onrecieve方法中获得getextera的parcle并从中获取内容并将内容添加到listview。

http://developer.android.com/reference/android/os/Parcelable.html

http://developer.android.com/reference/android/content/BroadcastReceiver.html

对于更新列表视图,您应该在广播接收方法中添加内容到您在listview的适配器中设置的arraylist,然后通知listview更改