0
我正在构建一个应用程序,它将持续获取我的笔记本电脑屏幕截图并将其传输到我的android应用程序,但while循环内有一些问题,当我将for循环放入限制时,我的程序运行,但它会一直持续到无穷大,或者我将它替换为无限循环,我的代码会暂停所有线程和应用程序崩溃,从而导致内存分配问题,请建议我无限次执行代码,以便显示连续的屏幕截图。所有主题被暂停
谢谢。
这里是我的代码
public class ScreenActivity extends AppCompatActivity {
ImageView img;
int width,height;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
img=(ImageView)findViewById(R.id.imageView);
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
// while (true)
for (int i=0;i<100;i++)
new GetImg().execute();
}
Bitmap imgscr;
public class GetImg extends AsyncTask<Object,Void,Bitmap> {
@Override
protected Bitmap doInBackground(Object[] params) {
Socket client= null;
try {
client = new Socket("192.168.1.5",6767);
InputStream in=client.getInputStream();
imgscr=Bitmap.createScaledBitmap(BitmapFactory.decodeStream(in), width, height, false);
} catch (Exception e) {
e.printStackTrace();
}
return imgscr;
}
@Override
protected void onPostExecute(Bitmap bm)
{
img.setImageBitmap(bm);
}
}
}
你不能在主线程上一个无限循环。将你的循环移出'onCreate'。另外请注意,您正在同时设置所有图像,因为您正在启动在后台运行的100个(或无限)AsyncTasks。这是你想要做的吗?我会假设你想要一个接一个地拍摄图像,因为你覆盖了相同的ImageView。 – m0skit0