相关疑难解决方法(0)

活动生命周期 - onCreate呼吁每次重新定位

我有一个简单的活动加载位图onCreate.我发现如果我旋转设备,我可以从onCreate再次调用的日志中看到.实际上,因为所有实例变量都再次设置为默认值,所以我知道整个Activity已经重新实例化了.

旋转2次后,我得到一个FC,因为没有足够的内存可以分配给位图.(所有活动的实例是否仍然存在?或者GC的清理速度不够快?)

@Override
public void onCreate(Bundle savedInstanceState) {
    File externalStorageDir = Environment.getExternalStorageDirectory();
    File picturesDir = new File(externalStorageDir, "DCIM/Camera");
    File[] files = picturesDir.listFiles(new FilenameFilter(){
        public boolean accept(File dir, String name) {
            return name.toLowerCase().endsWith(".jpg");
        }});
    if (files.length > 0) {
        Bitmap bm = BitmapFactory.decodeStream(new FileInputStream(files[0]));
        ImageView view = (ImageView) findViewById(R.id.photo);
        view.setImageBitmap(bm);
    }
}
Run Code Online (Sandbox Code Playgroud)

从我读到的所有内容中,onCreate应该在应用程序的生命周期中调用一次.我错了吗?如何重新定位设备会导致重新创建活动?

android activity-lifecycle

58
推荐指数
9
解决办法
8万
查看次数

在 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
查看次数