当我的应用程序收到服务器的响应时,我想创建多个处理程序并可运行。
处理程序最多可以有 4 个,最少可以有 1 个。
Problem
实际上我想将单元格屏幕划分为不同的部分,划分后我需要在屏幕的所有部分显示不同类型的数据。在这些部分中,每个部分都有多个项目要显示。
e.g!用户想要分割屏幕两部分
part one包含视频、图像和视频。 (3) 第一部分中的项目
part two包含图像和视频。 (2) 第二部分中的项目。
每个项目需要显示特定时间段(用户定义)
当一项的时间完成时,应用程序需要显示列表中的下一项。
我尝试过什么
据我所知,有一种方法可以实现这一目标
我需要创建多个处理程序来处理所有部分。
我尝试使用 for 循环创建新的处理程序并保存它的实例,但这样做我无法管理何时以及哪个屏幕部分需要更新。
请任何人告诉我如何动态创建任意数量的处理程序。并保存这些状态。
private void createStreamHandler(){
for(int i=0; i < serverResponse2.vMedialist.size(); i++){
final int index = i;
Handler hadler = new Handler();
hadler.postDelayed(myRunnable = new Runnable() {
public void run() {
if (sDuration[0] <= 0){
// check if wait counter expired? get show next media and gets
// its display duration
sDuration[0] = runPlaylist(serverResponse2.vMedialist.get(index), index);
}
sDuration[0] -= 5;
handler.postDelayed(myRunnable, 5000);
}
}, 500);
streamsHandler.add(hadler);
streamRunnable.add(myRunnable);
}
}
private int runPlaylist(ArrayList<Media2> mediaList, int index){
Log.e("mediaList ", "mediaList size at " + index +" = " + mediaList.size());
return mediaList.get(index).duration;
}
每次我获取数组列表最后一个索引的大小时。并且只有最后一个处理程序继续运行。请帮助我,我被困住了。
我怎样才能跟踪所有处理程序?
还有其他方法可以管理处理程序吗?
我希望我已经很好地解释了这个问题。请提出任何解决方案。谢谢。