마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Fragment와 Activity callback

0 추천
Fragment에 Asynctask를 하나 선언하여, 리스트를 만들게 하였습니다.

리스트 아이템을 클릭하면 그 정보를 보여주는 Activity를 startActivity로 실행됩니다.

startActivity를 finish()로 끝내면, 그 Fragment의 asynctask를 다시 불러서 리스트를 갱신하고 싶은데,

 

좋은 방법이 있나요?

지금 머리가 안돌아가서 막혀있는 상태라서...

 

<자세한 내용>

fragment의 oncreateview에서 new execute() 형태로 asynctask를 실행하고, 실행이 완료되면, 리스트가 화면에 뿌려지며, 리스트 아이템을 클릭하면 startactivity(intent)로 intent 액티비티가 실행된다. 액티비티에 있는 정보를 다 보고 나면, 그 정보를 담고 있는 item을 리스트에서 지우려고 하는데, 그럼 asynctask를 다시 불러서 리스트를 갱신하고 싶은데, 다른 방법이 뭐가 있는지 잘 머리가 안돌아가네요 ㅜ
Djleeee (13,180 포인트) 님이 2015년 2월 26일 질문

1개의 답변

+1 추천
 
채택된 답변
쎄미 (162,410 포인트) 님이 2015년 2월 26일 답변
Djleeee님이 2015년 3월 3일 채택됨
startactivityforresult를 이전에 사용해보았지만 효율적이지는 않은 것 같아서 질문을 여기다가 올립니다.  네비게이션 드로워의 activity 내에 있는 fragment에서 저 함수를 호출하면, activity에서 값을 받아오기 때문에, 너무 비효율적이더라고요.

그래서 혹시나 다른 방법이 없나 싶어서 질문 올려봤습니다.
broadcastreceiver이 괜찮은 것 같은데, 미숙자라 좀 더 해보고 있습니다.
무엇에 대한 효율인지는 모르겠지만, 브로드캐스트를 쓰는 것보다는 덜 번거롭습니다.
fragment에서 startactivityforresult 하실때 fragment를 감싸는 activity에서 해당 리퀘스트code를 처리하지 않고 super.onActivityResult 하시면 fragment의 onActivityResult에서 받습니다. 전혀 비 효율적이지 않아요.
죄송합니다 제가 뻘짓 하고 있었습니다...
startactivityforresult가 fragment에서도 잘 돌아가네요...
fragment를 포함하고 있는 activity로 activity result 값이 들어온다 했는데, 제가 한 결과 해당 fragment로 잘 돌아오네요... 감사합니다.
...