コメントで実際の問題を説明したので、ここで回答します。
アプリを 5 秒ごとに更新しないでください。インテントの結果に反応する必要があります。
解決策その 1 (ActivityForResult アプローチ)
これはあなたがそれを行う方法です:
private static final int SELECT_PHOTO = 100;
インテントを開始する
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO);
この部分は、結果に対して呼び出されます。そして、このメソッドでアクティビティを更新する必要があります。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case SELECT_PHOTO:
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
InputStream imageStream = getContentResolver().openInputStream(selectedImage);
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
}
}
}
編集: 明確にするために: 何が起こるかというと、アクティビティを作成することです。あなたの意図を呼び出します。あなたの活動は一時停止onPause()
され、ピッキングの後に再開されonResume()
ます。したがって、一時停止した後にアクティビティを更新したい場合。この動作をonResume()
メソッドに記述します。それでも、何らかの結果のためにインテントを開始している場合。上記の方法を使用して、結果をアクティビティに追加します。
解決策 2 (一般的なアプローチ)
@Override
protected void onResume() {
super.onResume();
//Refresh here
}