activity 跳转过程时出现黑屏? activity A 跳向 activity B 时,传递一个List<对象> 出现黑屏现 象,有网友说是oncreate事件加载过多数据,list.size()==500左右的时候就开始黑屏。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用handler post runable 对象,后台加载数据! 不太明白,接收的list对象是要显示的,如何边接收边显示? 就是activity A 向activity B里面传递一个list<String> activity B显示list里面的String 一次只显示一个元素。由于list.size()比较大。然后就黑屏。 就是activity A 向activity B里面传递一个list<String> activity B显示list里面的String 一次只显示一个元素。由于list.size()比较大。然后就黑屏。 加过了,两个activity 传递一个list<String>变量,当list.size()超过一定量时才会黑屏。 activity A(IPRIndex.java): List<MyPages> wordpagelist = new ArrayList<MyPages>(); try { wordpagelist = readWordByPage(Constant.FILE_PATH); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } int pageNum = 1; Constant.KEYWORD = ""; Object[] wordpagearray = wordpagelist.toArray(); Intent it = new Intent(IPRIndex.this, LoadDocReader.class); Bundle bundle = new Bundle(); bundle.putInt("pageNum", pageNum); bundle.putSerializable("wordTextList", wordpagearray); bundle.putString("fileName", curClickName); it.putExtras(bundle); startActivity(it);activity B(LoadDocReader.java): Bundle bundle = this.getIntent().getExtras(); curPage = bundle.getInt("pageNum"); myPageList = (Object[]) bundle.getSerializable("wordTextList"); currentFileName = bundle.getString("fileName"); myPageLength = myPageList.length; btn_topage.setText("转到(第" + curPage + "页/共" + myPageLength + "页)"); MyPages mypage = (MyPages) myPageList[curPage - 1]; byte[] bitmapbyte = mypage.getBitmapbyte(); 当 wordpagelist.size()==400左右的时候没问题,再大一点的时候,跳转时出现黑屏。网友说是UI阻塞,但有什么好的办法解决? list.size() 过大,onCreate()阻塞,会造成程序无响应、黑屏等情况!可以使用Runnable 开启一个线程 在run()方法的加载数据 在Handler 里 handleMessage()中处理, 这样就可以解决啦 楼主试试吧! 不要再 子线程 操作UI 关于android 线程的 文章,写的很详细了 http://byandby.iteye.com/blog/825071 求高人助:sip video非对称协商 怎么在ndk环境下利用opengl es显示文字或者字符? 怎么在Android里面获得发出去的短信内容和号码啊 大家是在什么情况下才把Activity分成不同的Task的? ListActivity里onListItemClick方法参数问题 请教Android进度条问题 HTC 确认 Android 2.0 已经在计划中! android 与 C++ 之无情无意 android导入alipay_lib case报错 android app混淆错误 关于多个ListView用ViewFlipper实现横向滑动的问题 如何计算MP3的时长
就是activity A 向activity B里面传递一个list<String> activity B显示list里面的String 一次只显示一个元素。由于list.size()比较大。然后就黑屏。
activity A(IPRIndex.java):
List<MyPages> wordpagelist = new ArrayList<MyPages>();
try
{
wordpagelist = readWordByPage(Constant.FILE_PATH);
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
int pageNum = 1;
Constant.KEYWORD = "";
Object[] wordpagearray = wordpagelist.toArray();
Intent it = new Intent(IPRIndex.this, LoadDocReader.class);
Bundle bundle = new Bundle();
bundle.putInt("pageNum", pageNum);
bundle.putSerializable("wordTextList",
wordpagearray);
bundle.putString("fileName", curClickName);
it.putExtras(bundle);
startActivity(it);
activity B(LoadDocReader.java):
Bundle bundle = this.getIntent().getExtras();
curPage = bundle.getInt("pageNum");
myPageList = (Object[]) bundle.getSerializable("wordTextList");
currentFileName = bundle.getString("fileName");
myPageLength = myPageList.length;
btn_topage.setText("转到(第" + curPage + "页/共" + myPageLength + "页)");
MyPages mypage = (MyPages) myPageList[curPage - 1];
byte[] bitmapbyte = mypage.getBitmapbyte();
在Handler 里 handleMessage()中处理, 这样就可以解决啦 楼主试试吧!