当我的应用程序收到服务器的响应时,我想创建多个处理程序并且可运行.
处理器的最大数量为4,最小数量为1.
问题
实际上,我想将单元格屏幕划分为不同的部分,划分后,我需要在屏幕的所有部分中显示不同类型的数据.在这些部分中,每个部分都有多个要显示的项目.
例如!用户想将屏幕分为两部分
第一部分包含视频,图像以及视频. (3)第一部分
第二部分包含图像和视频. (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; }
每次我得到arrayList的最后一个索引的大小.并且只有最后一个处理程序继续运行.请帮助我坚持下去.
我如何跟踪所有处理程序?
还有其他方法可以处理管理程序.
我希望我已经很好地解释了这个问题.请提出任何解决方案.谢谢.
解决方法:
如果我正确理解您的代码,则需要替换
handler.postDelayed(myRunnable, 5000);
同
handler.postDelayed(this, 5000);
因为myRunnable是您创建的最新Runnable.您的所有处理人员都将其发布,而不是自己发布.
编辑:
您在每个处理程序中存储它的编号-索引.您可以添加方法
voID handleResponse(int index, Object someData)
到您的课程,创建处理程序.之后,每个处理程序都可以调用handleResponse(index,data)来通知某些更改.
总结以上是内存溢出为你收集整理的android-根据服务器响应创建多个处理程序并管理状态全部内容,希望文章能够帮你解决android-根据服务器响应创建多个处理程序并管理状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)