1

onActivityResult()1 つのアクティビティでとonPause()メソッドを使用しています。問題は、起動するたびに最後onActivityResult()に呼び出さonPause()れるため、アプリケーションが近づくことです。この問題を防ぐには?コード :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK
            && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        picturePath = cursor.getString(columnIndex);
        cursor.close();

        ImageView imageView = (ImageView) findViewById(R.id.imgView);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    }
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
}
4

2 に答える 2

1

boolean 変数を使用し、onActivityForResult メソッドを有効にしてください。

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
if(!isActivate)
    finish();
}
于 2013-05-29T11:41:24.037 に答える
1

finish();に電話している理由onPause()。それを削除します。

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    //finish();
}

呼び出し元のアクティビティを呼び出すfinish()と破棄されるため、アクティビティが呼び出されるとタスクが終了します。これは、結果を処理するアクティビティが (これ以上) ないためです。

だから単純に取り除く finish()

于 2013-05-29T11:33:57.343 に答える