0

在我的应用程序中使用服务,我从活动 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;
    }
}
4

1 回答 1

0

在您的活动中定义一个broadcastReceiver以更新listveiw,您也应该有一个要从服务添加到listview的parcle内容类,为此您应该定义一个实现Parcelable的类,然后将其放入意图,然后将意图发送给接收者从服务中,然后在 onrecieve 方法中使用 getextera 获取该 parcle 并从中获取内容并将内容添加到 listview。

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

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

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

于 2013-06-03T19:29:34.390 回答