java - android程序中的线程崩溃
问题描述
为什么这段代码会使应用程序崩溃并强制我关闭它?由于某种原因它不断崩溃我不明白为什么但是这段代码应该用于理解线程
public class ThreadE extends Activity implements OnClickListener {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button button = new Button(this);
button.setText("Do Time Consuming task!");
setContentView(button);
button.setOnClickListener(this);}
public void onClick(View v) {
try {
for(int i=0; i<10; i++) {
System.out.println(i);
Thread.sleep(10000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
解决方案
此类正在扩展 Activity,这意味着它将位于主(UI)线程上。问题是使用以下代码调用:[[ Thread.sleep(10000) ]] 这将阻塞主线程 10 秒,我们永远不应该阻塞主线程尝试从 Thread 或 AsyncTask 继承
推荐阅读
- javascript - 如果 Google 表格行不包含字符串,则删除或过滤它
- python - 用于服务发现性能考虑的 UDP 协议的套接字广播
- javascript - 如何将响应高度设置为反应表
- reactjs - 在选项卡之间导航时 Redux 状态变得不确定
- php - Laravel 项目上传到 slash 文件夹中的实时服务器,在本地运行良好,但不适用于实时 slash 文件夹
- javascript - 为什么不读取第二个 IF 语句?
- vb.net - 从“范围”类型到“字符串”类型的转换无效。在 vb.net 中
- reactjs - 为什么在 svg 中使用 appendChild 时 (react-)ref 属性不起作用?
- javascript - 使用数据库 php 中的值展开和折叠表行
- amazon-web-services - 如何使用 python boto3 创建具有指定密码的 EC2 实例?