要在Android中的无限循环中运行图像分类器,可以使用以下解决方法。
示例代码:
public class ImageClassificationTask extends AsyncTask {
@Override
protected Void doInBackground(Void... voids) {
while (true) {
// 在此处运行图像分类器的代码
// ...
try {
Thread.sleep(1000); // 每隔1秒执行一次图像分类
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return null;
}
}
// 在Activity或Fragment中启动后台任务
ImageClassificationTask task = new ImageClassificationTask();
task.execute();
示例代码:
public class MainActivity extends AppCompatActivity {
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
// 在此处运行图像分类器的代码
// ...
handler.postDelayed(this, 1000); // 每隔1秒执行一次图像分类
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 在Activity的生命周期中开始和停止图像分类器任务
startImageClassificationTask();
}
@Override
protected void onDestroy() {
super.onDestroy();
stopImageClassificationTask();
}
private void startImageClassificationTask() {
handler.post(runnable); // 开始执行图像分类
}
private void stopImageClassificationTask() {
handler.removeCallbacks(runnable); // 停止执行图像分类
}
}
无论使用哪种方法,重要的是将图像分类器的代码放在循环中,并使用适当的延迟来控制循环的频率。这样可以确保图像分类器持续运行,并在后台线程中进行处理,以避免阻塞UI线程。