1

我在一项活动中使用onActivityResult()和方法。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

请使用布尔变量并激活它 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()者时,Activity 将被销毁,因此当被调用的 Activity 完成您的应用程序正在关闭的任务时,因为没有 Activity(不再)可以处理结果。

所以只需删除 finish()

于 2013-05-29T11:33:57.343 回答