我在 Android java 项目中有一个主类,其中定义了所有函数。然后我有 2 个其他类扩展主类并实现Runnable
.
- 主类:所有主要功能
- 第 2 类:我使用所有主要功能并有一个静态变量
X
,我在文件 2 中对其进行了修改。 - 第 3 类:我使用所有主要功能并有一个静态变量
Y
,我在文件 3 中对其进行了修改。
在主类中,我启动了 2 个线程:一个用于 Class2,一个用于 Class3。
当我尝试Class2.X
从主班打电话时,总是null
无论如何。我已经尝试过volatile
, synchronized(thread)
,getvalue()
等,但它不起作用。
我应该怎么做才能Class2.X
从主类中读取它不为空的值?
这是代码:
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)
时,我的安卓手机仍然出现黑屏。
我在 logcat 中记录了以下内容:
Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40a34d28
如果我删除线程,我不会收到此错误。
有什么帮助吗?