相关疑难解决方法(0)

通过意图拍照后调用的活动已被杀死/ onCreate

我试图用意图拍照.我的问题是,有时在拍照后我的活动(调用startActivityForResult)似乎被破坏,以便再次调用onCreate.

这是我点击图片浏览后拍照的代码,应替换哪个图片:

if (!getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_CAMERA)) {
            Util.makeLongToast(R.string.lang_no_camera);
        } else {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, TAKE_ITEM_PHOTO);
        }
Run Code Online (Sandbox Code Playgroud)

...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.v(TAG, "onactivityresult called");
    if (requestCode == TAKE_ITEM_PHOTO) {
        if (data != null) {

            imageUri = data.getData();


                try {
                    img_photo.setImageBitmap(Media.getBitmap(
                            getContentResolver(), imageUri));
            } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

        } else
            Log.w(TAG, "data is null");
    } …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-camera-intent android-activity

32
推荐指数
1
解决办法
1万
查看次数

相机或图库意图会破坏某些设备上的旧活动

我正在开发使用WebView显示其内容的应用程序.但是,它需要打开相机或图库才能选择图片:

    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraIntent, 1);

    Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(galleryIntent, 2);
Run Code Online (Sandbox Code Playgroud)

它在大多数设备上运行良好,但在HTC One和其他几个设备上都会破坏我的活动,因此在返回时会重新加载webview.我没有noHistory旗帜AndroidManifest.xml.可能导致该问题的原因是什么?我可以避免破坏我在这里的活动吗?

android android-intent android-activity

13
推荐指数
1
解决办法
2790
查看次数

Galaxy S3 - 以肖像模式拍摄照片会破坏活动

所以,在这个论坛上已经以多种形式提出了这个问题,但没有一个答案对我有所帮助.我有一个我只能在三星Galaxy S3上重现的错误.

我想简单地使用手机的相机拍摄并存储照片,但在我从onActivityResult收到回复之前,我的活动正在被销毁.这只发生在我以纵向模式使用相机时,在横向模式下它很好.

我正在使用此代码启动相机:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, Config.ACTIVITY_TAKE_PHOTO);
Run Code Online (Sandbox Code Playgroud)

在纵向模式下,我从未看到对onActivityResult的调用(来自Camera活动),我只看到在我的启动活动中调用的onDestroy().日志中没有异常或错误,并且没有明显错误使其崩溃.

我看过帖子建议在Manifest中添加"android:configChanges ="orientation | keyboardHidden"",并做很多其他事情来管理使用相机时发生的方向变化,但到目前为止没有任何帮助.

还有其他人解决了这个问题吗?

camera android galaxy android-activity

13
推荐指数
2
解决办法
6011
查看次数

执行摄像头意图时活动被杀死

[编辑:问题解决了.请参阅下面的答案.]

在我的应用程序中,我调用系统相机拍照,然后处理结果onActivityResult.你知道,通常.它曾经工作,但现在我的呼叫活动在我拍摄时被杀死了.具体来说,onDestroy()在按下相机快门后立即调用我的活动.照片确实被拍摄并保存(我已经检查过该文件是否写在SD卡上).在我接受照片后,调用onActivityResult活动堆栈中的先前活动而不是返回到调用活动并调用.我在logcat中看不到任何异常.我的自定义异常处理程序不会被调用.如果重要,我的应用程序还包括一个收听GPS更新的服务,但我注销了所有接收器onPause().

这是调用堆栈MyCallingActivity.onDestroy():

Thread [<1> main] (Suspended (breakpoint at line 303 in NewPlaceDetailsActivity))   
    NewPlaceDetailsActivity.onDestroy() line: 303   
    ActivityThread.performDestroyActivity(IBinder, boolean, int, boolean) line: 2663    
    ActivityThread.handleDestroyActivity(IBinder, boolean, int, boolean) line: 2694 
    ActivityThread.access$2100(ActivityThread, IBinder, boolean, int, boolean) line: 117    
    BinderProxy(ActivityThread$H).handleMessage(Message) line: 968  
    ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 130 
    ActivityThread.main(String[]) line: 3687    
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
    Method.invoke(Object, Object...) line: 507  
    ZygoteInit$MethodAndArgsCaller.run() line: 842  
    ZygoteInit.main(String[]) line: 600 
    NativeStart.main(String[]) …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

5
推荐指数
1
解决办法
7490
查看次数

在 Android 中拍照后未调用 onActivityResult

我正在使用此代码,但我的 onActivityResult 从未被调用。我过去常常提出请求,而没有传递将图像保存到 SD 卡的额外意图,而且效果很好 -onActivityResult()会像我期望的那样被调用。但是因为我添加了 SD 卡代码 - 没有运气!

我添加(或错过)了什么?我以/sf/answers/859421881/为例。

这是我的代码,

    static final int CAPTURE_IMAGE_CALLBACK = 1;

    private void dispatchTakePictureIntent() 
    {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    File photo = null;
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
        {
            photo = new File(android.os.Environment.getExternalStorageDirectory(), "myapp/images/" + File.separator + timeStamp + ".png");
        } 
        else 
        {   
            photo = new File(getCacheDir(), "myapp/images/" + File.separator + timeStamp + ".png");
        }  
        if ( photo != null)
        {
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
        }

        if …
Run Code Online (Sandbox Code Playgroud)

android android-sdcard android-camera

4
推荐指数
1
解决办法
5246
查看次数

从相机应用程序通过意图返回时,Android活动被破坏

我的活动使用用户定义的对象来跟踪进度.当用户按下按钮并将其存储在其中一个对象中时,我需要从相机中获取图像.

问题是,有时它工作正常,但很多时候它重新初始化我的活动,因此所有对象和我的进度都丢失了.据我所知,这可能是因为相机是一个内存密集型应用程序,而在后台,操作系统会破坏我的应用程序以释放内存.

我宁愿不让我的对象Parcable,然后将它们保存到Bundle.

我修改了我的android清单,以便活动标签包含

android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
Run Code Online (Sandbox Code Playgroud)

这是我的相机意图

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent,REQUEST_IMAGE_CAPTURE);
Run Code Online (Sandbox Code Playgroud)

这是onActivityResult方法

protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK )
        modifyResponseView_image();
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了更多的建议,并认为将我的活动保持在前台可能会有所帮助,但我不确定它是否会发生,也不确定如何去做.

我们将非常感谢您提供的任何帮助.应用此功能的替代方案也会有所帮助.

android android-intent android-camera android-activity

2
推荐指数
1
解决办法
2276
查看次数

android相机意图在某些设备上无法正常工作

嗨,我正在开发 android 应用程序,我正在尝试使用设备摄像头捕获图像并将其保存到特定位置。我用以下方式尝试过:

public class MainActivity extends Activity {

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

    Log.i("inside on create ", "inside on create ");

    capturePhotoForRecordUpload();
}

public void capturePhotoForRecordUpload() {

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {

        File storageDir = new File(Environment.getExternalStorageDirectory().getPath() + "/MyApp");
        if(!storageDir.exists())
            storageDir.mkdirs();
        if(!storageDir.exists())
            storageDir.mkdir();

            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory().getPath() + "/MyApp"+"/sample.jpg")));
            startActivityForResult(takePictureIntent, 7);
    }
}

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

} …
Run Code Online (Sandbox Code Playgroud)

android oncreate android-camera

0
推荐指数
1
解决办法
3149
查看次数