2014-04-24 1 views
1

사용자 정의보기 myView을 라이브러리로 개발합니다. 내보기 구성 요소의 메서드에서 비디오 재생 활동을 발사 : 나는 재생이 끝날 때 알아야 할onActivityResult를 재정의 할 수 없을 때 하위 활동이 완료되었는지 확인하는 방법

Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
Uri uri = Uri.parse(uriPath); 
intent.setDataAndType(uri, "video/mp4"); 
myView.getContext().startActivity(intent); 

. 나는 startActivityForResult를 사용하고 난 단지가 아닌 컨텍스트가 사용됩니다 내보기에 액세스 할 수 있기 때문에 활동의 onActivityResult를 재정의 할 수 없습니다 -

myView.getContext() 그래서 내가 래퍼로서 내 자신의 활동 PlayVideoActivity를 만들었습니다. itsefl

Intent intent = new Intent(mAdView.getContext(), PlayVideoActivity.class); 
intent.putExtra(PlayVideoActivity.EXTRAS_URI, uriPath); 
mAdView.getContext().startActivity(intent); 

PlayVideoActivity 활동 : 함께 화재

public class PlayVideoActivity extends Activity { 
    public static final String EXTRAS_URI = "uri"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String uriString = getIntent().getExtras().getString(EXTRAS_URI); 

     Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
     Uri uri = Uri.parse(uriString); 
     intent.setDataAndType(uri, "video/mp4"); 
     startActivityForResult(intent, 1); 
    } 

    @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     finish(); 
    } 
} 

PlayVideoActivity.onActivityResult가있는 "배치"나는 비디오 재생이 완료 알고 있지만 내가 여기에서 myView에 액세스 할 수 없습니다. AFAIK 다른 활동에 개체 참조를 전달할 수 없습니다.

이 시점에서 myView의 메소드를 호출 할 수있는 방법이 있습니까?

답변

0

번들을 사용하여 하위 활동으로 데이터를 전달할 수 있습니다.

Bundle b = new Bundle(); 

    b.putString(uri, "video/mp4"); 

    intent.putExtras(b); // where i is the intent 

이 번들은 한 활동에서 다른 활동으로 정보를 전송합니다.