すべての関数が定義されている Android Java プロジェクトにメイン クラスがあります。次に、メイン クラスを拡張して実装する 2 つの他のクラスがありますRunnable
。
- メイン クラス: すべてのメイン関数
- クラス 2: すべてのメイン関数を使用し
X
、ファイル 2 で変更する静的変数を持っています。 - クラス 3: すべてのメイン関数を使用し
Y
、ファイル 3 で変更する静的変数を持っています。
メイン クラスでは、Class2 用と Class3 用の 2 つのスレッドを開始します。
Class2.X
メインクラスから呼び出そうとすると、いつもnull
何があってもです。volatile
、synchronized(thread)
、などを試しgetvalue()
ましたが、機能しません。
Class2.X
メインクラスから null にならないように値を読み取るにはどうすればよいですか?
コードは次のとおりです。
Thread t = new Thread(new Functionss(mRgbImage));
t.start();
Thread t2 = new Thread(new Functionss_2(mRgbImage));
t2.start();
if(boolean_variable)
{
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Bitmap final_added =addition(mRgbImage2, mRgbImage3);
mImageView.setImageBitmap(final_added);
mRgbImage2
とmRgbImage3
はstatic volatile
変数です。
mImageView.setImageBitmap(initial_image)
実際、メインクラスで画像を使用して変更してから実行すると、Androidフォンで黒い画面が表示されるため、変数の問題ではないと思います。
logcat で次の点に注意しました。
Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40a34d28
スレッドを削除すると、このエラーは発生しません。
何か助けはありますか?