android - 在线程中运行的另一个方法调用的方法也会在该线程中运行吗?
问题描述
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
getLinks();
}
});
}
}
private void getLinks(){
String link;
// my work
Download(link);
}
private void Download(String Link){
// my work
}
另一个方法是否也会在该线程中运行,因为我们调用 getlinks() 然后 getlinks() 调用 Download() 方法,下载将在后台运行还是我必须在我的 android 应用程序中保持我的活动打开。
解决方案
事实:当我们使用 IntelliJ IDE 时,我们都知道有一个名为public static void main(String ars[]){ }
remember?的方法。所以这是一个方法,在这个方法中运行的所有代码都将在主线程中运行。
答案 -因此,如果我们从一个线程调用一个方法,那么该方法中的每一行代码都将在该线程中运行。
示例:所以线程是一辆车,这辆车调用的任何东西都将在那辆汽车上行驶,即使一个人被已经在那辆汽车上行驶的人调用,也必须在那辆汽车上行驶。每个人都需要一辆车去旅行。每个方法都需要一个线程来运行。
额外的事实 -你知道在 android 中有一个称为 UI 线程的线程,所以每当你想对 UI 进行更改时,你必须使用那个线程,否则它会导致应用程序崩溃。
我向您推荐这门 [由 Michael Pogrebinsky 编写的 udemy 课程],以了解 Java 中的多线程。Java 多线程、并发和性能优化
推荐阅读
- ansible - Ansible 更新嵌套列表
- scala - 在 ZIO 循环中组合重试和重复时重置指数计划
- d3.js - d3.js - 使用 d3 实现 git 分支节点布局自动化
- c# - 将文本文件中的二进制数据转换为文本格式
- c++ - 原型匹配函数时出现未定义符号错误
- php - 向电子邮件八达通发送 PUT 请求时出现“INVALID_PARAMETERS”错误响应
- python - Python subprocess.Popen 方法不执行“start chrome”命令
- django-forms - 如何在 Wagtail 的自定义字段中检索 Django 模板中的附加字段名称?
- sitecore - Sitecore 9.3 发布问题
- python - Python - Django 提交表单时提交按钮不起作用