在我使用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;
}
}
答案 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更改