2013-03-29 3 views
0

특정 간격으로 실행되는 동기화 서비스가 있으며 서버 데이터에 따라 클라이언트 측을 업데이트합니다. 이제 사용자가 listview에서 항목을 제거하는 것과 같이 서버 데이터를 변경하면 해당 변경 사항이 해당 뷰 조각에 반영되어야합니다.동기화 서비스를 가져온 후 조각보기 새로 고침

문제는 다음과 같습니다. - 내 조각에 변경 사항을 적용하고 있지만 자동이 아닙니다. 다시 말해서, 필자의 업데이트를보기 위해 필자는 앞뒤로 가서 관련된 관련 조각으로 돌아 가야한다는 것을 의미합니다.

그런 다음 백그라운드에서 실행중인 동기화 서비스에서 해당 부분보기가 변경되어 내 조각보기에서 새로 고침 기능을 호출 할 수 있음을 어떻게 알릴 수 있습니까?

참고 : 특정 간격으로 반복해서 조각을 새로 고치고 싶지 않습니다. 내 조각보기가 변경되면 새로 고침 만합니다.

UPDATE :

내가 조각에서 목록보기 항목의 수를 제공하는 어댑터 수를 얻고있다. 변경된 수를 얻을 때마다 조각을 업데이트/새로 고침/다시로드해야합니다. 그래서 제 카운트는 조각보기를 바꾸기위한 방아쇠로 작용할 것입니다. 당신은, 당신의 FragmentBroadcastReceiver를 사용하는 것이 onStart()을 등록하고 onStop()에 등록을 취소해야

if adapter.getCount() gets changed //how to get notified about this change 
{ 
     FragmentTransaction transactionOld =getActivity().getSupportFragmentManager().beginTransaction(); 

     transactionOld.detach(this).commit(); 

    FragmentTransaction transactionNew = getActivity().getSupportFragmentManager().beginTransaction(); 

     transactionNew.attach(this).commit(); 
} 

답변

1

: 같은

그 뭔가.

SyncServices을 완료하고 데이터를 업데이트 한 경우 을 표시하려면 sendBroadcast()을 사용하여 브로드 캐스트를 보내면됩니다.

물론 Broadcast에 대한 맞춤 작업을 설정해야합니다 (예 : com.myapp.ACTION_SYNC). docs을 읽으면 알 수 있습니다.

+0

내 조각이 이미 다른 클래스를 확장하고 있으므로'class FragmentA extends BroadcastReceiver'와 같은 일을 할 수 없으므로 컨텍스트에서도 예제를 제공해 주실 수 있습니까? –

+0

조각은'BroadcastReceiver'를 확장 할 수 없습니다. 그것은 말도 안돼. 나는 네가하는 말을 이해할 수 없다. –

+0

그렇다면 조각에서'BroadcastReceiver'를 어떻게 사용하는지 오해했습니다. 조각으로 확장 한 다음 사용하는 방법으로 생각했습니다. 당신은 그것을 달성하는 방법에 대한 아이디어를 줄 수 있습니까? –

관련 문제