저는 ListView
입니다. 각 행을 클릭하면 새로운 Intent
에있는 서비스에서 다운로드가 시작됩니다.다운로드 서비스에서 ListView의 행을 업데이트하는 방법
서비스에서 얻은 정보에서 클릭 행의 progressBar
을 어떻게 업데이트 할 수 있습니까?
저는 ListView
입니다. 각 행을 클릭하면 새로운 Intent
에있는 서비스에서 다운로드가 시작됩니다.다운로드 서비스에서 ListView의 행을 업데이트하는 방법
서비스에서 얻은 정보에서 클릭 행의 progressBar
을 어떻게 업데이트 할 수 있습니까?
방송 수신기를 사용하여 활동의 진행률 표시 줄에 알립니다. 귀하의 경우에는 방송을 수신하면 진행률 막대를 업데이트 한 다음 어댑터에 데이터 변경을 알립니다. 서비스 전송에
활동의 다른 측면에서
Intent i = new Intent("Updated_Count");
i.putExtra("progress", <progress count>);
i.putExtra("row_index", <row_index>);
sendBroadcast(i);
수신 아래처럼 방송 당신은 당신의 목록 활동
돈 '에 서브 클래스로 클래스 위에 배치 할 수 있습니다
public class newMessage extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(action.equalsIgnoreCase("Updated_Count")){
Bundle extra = intent.getExtras();
String progress= extra.getString("progress");
String index = extra.getString("row_index");
// now you can play with progress for any particular list row
}
}
그 방송 수신기 등록/등록 취소 잊어라
해피 코딘 지!
으로 수신하면 도움이된다는 사실을 알게되고 친절하게 답변으로 표시하여 다른 사람에게도 유용 할 수 있습니다. –
내 listview의 각 행마다 자체 progressBar가 있으므로 정확한 행의 progressBar를 정확히 업데이트하려면 어떻게해야합니까? – DavidOli
당신이 서비스 끝에서 관리해야하는 경우 인덱스 또는 아이디 또는 서비스에서 각 행에 대해 무언가 독특한 것을 전달하는 것보다 더 많은 수의 다운로드가있을 경우 –
당신은 활동 서비스에서 방송 수신기를 사용하거나 fragment.you이 onResume()
과 onPause()
에 등록되지 않은 방송을 등록해야하고 다음 예를 참조 할 수 있습니다 서비스를 통해 sendBroadcast 활동 및 방송 인스턴스를 생성 : http://www.truiton.com/2014/09/android-service-broadcastreceiver-example/
서비스에서 브로드 캐스트를 전송하고 목록 활동 –