Java中的线程管理

用户名

我在我的android应用程序中创建了2个线程,但是它们不起作用:(。

final Thread t1 = new Thread() {
                // @Override
                public void run() {
                    camera.takePicture(null, null, photoCallback);
                    Log.e("mediafile", mediaFile+"");
                }
            };
            t1.start();

            final Thread t2 = new Thread() {
                // @Override
                public void run() {
                    Intent myIntent = new Intent(CameraActivity.this, ModificationActivity.class);
                    Log.e("le chemin de la photo", "" + mediaFile);
                    myIntent.putExtra("imagePath", ""+mediaFile);
                    startActivity(myIntent);
                }
            };
            try {
                t1.join();
                t2.start();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

当我启动意图时,我的变量始终为null,因为第一个线程未完成。

我希望你能帮助我:D

在此先感谢所有人

这是日志:

11-05 14:29:59.936 18216-18216 / com.mcm.citadium I / Choreographer:跳过了72帧!该应用程序可能在其主线程上做过多的工作。11-05 14:30:05.140 18216-18387 / com.mcm.citadium E / mediafile:null 11-05 14:30:05.148 18216-18389 / com.mcm.citadium E / le chemin de la photo:null 11- 05 14:30:05.652 18216-18216 / com.mcm.citadium E / fin de photoCallback:/storage/sdcard0/Pictures/MyCameraApp/IMG_20131105_143005.jpg

基鲁沃卡

好吧,首先,您不需要创建任何线程来捕获图像-您可以camera.takePicture安全地在主线程上运行-无论如何,它将在另一个线程中处理其工作(请参见文档)。

因此,例如,您可以在按钮onClick处理程序中触发拍照活动

        shootButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    mCamera.takePicture(null, null, photoCallback);
            }
        });

photoCallback然后,将看起来像:

    Camera.PictureCallback photoCallback = new Camera.PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {
            // generate file path for new picture
            String fileName = "myPicture.jpg";
            String mediafile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
               .getCanonicalPath() + "/mydir/" + fileName;

            // launching new activity to modify picture
            Intent myIntent = new Intent(CameraActivity.this,
                ModificationActivity.class);
            Log.e("le chemin de la photo", "" + mediaFile);
            myIntent.putExtra("imagePath", ""+mediaFile);
            startActivity(myIntent);
        }
    };

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章