2016-07-05 3 views
0

나는 Listview를 업데이트하기 위해서 나는 notifyDataSetChanged()을 사용해야한다는 것을 알고있다. 하지만, 어떻게 사용자 정의 목록 뷰를 매 순간마다 실시간으로 업데이트 할 수 있습니까?안드로이드 - 실시간으로 매분 사용자 정의 목록보기 업데이트

예를 들어, 내 응용 프로그램은 Listhview를 05h : 10m : 20s에 만들었고 40 초 후에 Listview를 1 분마다 업데이트해야합니다. 즉, 현재 시간이 1 분 이상 변경되었는지 Listview를 업데이트할지 여부를 결정해야합니다. 어떻게하면 될까요?

+0

당신은 사용할 수 처리기의 onStop()에서 Context.unregisterReceiver()를 호출하는 것을 잊지 마십시오. [http://stackoverflow.com/questions/12916084/android-update-listview-items-every-1-minute](http://stackoverflow.com/questions/12916084/android-update-listview-items- every-1-minute) –

답변

3

난 당신이, 당신이 다른 답변을 사용해야하지 않으면 두 번째 0에서 당신의 ListView 분마다 업데이트한다고 가정합니다.

그렇다면 ACTION_TIME_TICK에 대한 브로드 캐스트 수신기를 등록 해보십시오.

IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction(Intent.ACTION_TIME_TICK); 

Context.registerReceiver(new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     adapter.notifyDataSetChanged(); 
    } 
}, intentFilter); 

은 그 목적에 대한 Activity

+0

예, 정확히 제가 찾고있는 것입니다. 감사! – gigs

0

당신이해야이 같은 : 꽤 잘

private ListView listView; 

final Runnable r = new Runnable() { 
    public void run() { 
     adapter.notifyDataSetChanged(); 
     listView.postDelayed(this, 60000); 
    } 
}; 

listView.postDelayed(r, 60000); 
0

작품!

private ListView listView; 
private ListViewAdapter listViewAdapter; 
private Handler mainHandler; 

//.... 
//Call method when start updating 

public void updateListShedule() { 
    if (handler == null) { 
     handler = new Handler(getApplicationContext().getMainLooper()) 
    } 
    handler.postDelayed (new Runnable() { 
     public void run() { 
      adapter.notifyDataSetChanged(); 
      updateListShedule(); 
     } 
    }, 10000); 
} 
관련 문제