1

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

4

3 に答える 3

0

t2 の開始が try-catch 内にあるのはなぜですか? 両方の開始点を try-catch の外側に配置し、両方のスレッドをその中に参加させるだけでうまくいくと思います。

t1.start();
t2.start();

try {
    t1.join();
    t2.join();
}
catch (Exception e) { e.printStackTrace(); }
于 2013-11-05T22:35:08.023 に答える