大概结构如下,不刷新!
//fragment
class MyFragment ...{
ListView listView;
MyAdapter adapter;
...
}
//adapter
class MyAdapter ...{
static List<T> myData = new List();
Content context;
Timer timer =...;
TimerTask timerTask = ...{
for( T t : myData){
...
}
//notifyDataSetChanged();
//调用不刷新,换成下面的可以了。
Intent intent = new Intent("myaction.allin");
Bundle bundle = new Bundle();
//把数据保存到Bundle里
bundle.putString("name", "online_status_refresh");
//把bundle放入intent里
intent.putExtra("action",bundle);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
void regBroadcast(){
LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance( context);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("myaction.allin");
BroadcastReceiver mItemViewListClickReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent){
notifyDataSetChanged();
}
}
应该是notifyDataSetChanged对线程有要求吧。
myData 必须是 static的。