android中的主线程

android中的主线程不需要新建。

Thread.sleep设置程序阻塞。

 1 public class MainActivity extends AppCompatActivity {
 2
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7         findViewById(R.id.bt).setOnClickListener(new View.OnClickListener() {
 8             @Override
 9             public void onClick(View v) {
10                 try {
11                     Thread.sleep(1000);
12                     System.out.print("The thread is running, is sleeping");
13                 } catch (InterruptedException e) {
14                     e.printStackTrace();
15                 }
16             }
17         });
18     }
19 }

新建子线程后,按下Button,不会卡死,会立即弹起。



 1 new Thread(){
 2                     @Override
 3                     public void run() {
 4                         try {
 5                             while (true){
 6                             sleep(1000);
 7                                 System.out.print("Hello, this is the new thread!");
 8                             }
 9                         } catch (InterruptedException e) {
10                             e.printStackTrace();
11                         }
12                     }
13                 }.start();

 
时间: 2024-10-10 07:44:46

android中的主线程的相关文章

如何在Android中判断某个线程是否是主线程

转帖: http://droidyue.com/blog/2014/07/12/check-main-thread-in-android-chinese-edition/ 如何在Android中判断某个线程是否是主线程?对于这个问题,你可能说根据线程的名字,当然这个可以解决问题,但是这样是最可靠的么?万一某天Google一下子将线程的名字改称其他神马东西呢. 方法揭晓 下面的方法是最可靠的解决方案. public static boolean isInMainThread(){ return L

Android中使用Thread线程与AsyncTask异步任务的区别

最近和几个朋友交流Android开发中的网络下载问题时,谈到了用Thread开启下载线程时会产生的Bug,其实直接用子线程开启下载任务的确是很Low的做法,那么原因究竟如何,而比较高大上的做法是怎样?于是用这篇博文详细分析记录一下. 一.概念介绍 Thread是指在CPU运行的一个程序中,可以有多个执行路径.运行的程序称作进程,而这个执行路径,就被称为线程(如果对这两个名词不太理解的同学可以参考一下操作系统方面的书籍).Java中的多线程是指多个Thread可以在一段内同步执行,这样可以提高代码

iOS中NSThread(主线程,子线程)

#import "AppDelegate.h" @interface AppDelegate () { NSInteger _totalTickests; } @property (nonatomic, retain) NSLock *lock; @end @implementation AppDelegate - (void)task1 { NSLog(@"当前线程:%@,是否是主线程:%d",[NSThread currentThread],[[NSThread

Android中,子线程使用主线程中的组件出现问题的解决方法

Android中,主线程中的组件,不能被子线程调用,否则就会出现异常. 这里所使用的方法就是利用Handler类中的Callback(),接受线程中的Message类发来的消息,然后把所要在线程中执行的功能交由Handler类来处理.这样就解决了线程出现的问题. 下面测试实例功能为单击图片,图片透明度改变为50,300毫秒后恢复不透明,代码如下: public class Demo extends Activity{ private ImageView changeImg = null;//Im

多线程:子线程执行过程中调用主线程

直接在子线程中调用方法,线程的ID为3,通过Post则为1 执行结果: 2018-09-13 11:21:11:1735 : 主线程:1 2018-09-13 11:21:16:0583 : 子线程:3 2018-09-13 11:21:16:0739 : ShowForm:1发送失败! 2018-09-13 11:21:16:1051 : ShowForm:3发送失败! public class TestClass { private SynchronizationContext mainTh

Android中通过实现线程更新ProgressDialog(对话进度条)

作为开发者我们需要经常站在用户角度考虑问题,比如在应用商城下载软件时,当用户点击下载按钮,则会有下载进度提示页面出现,现在我们通过线程休眠的方式模拟下载进度更新的演示,如图(这里为了截图方便设置对话进度条位于屏幕上方): layout界面代码(仅部署一个按钮: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.and

(转)Android中轻松使用线程

当你第一次启动一个Android程序的时候,一个被称为"mian"的线程就被自动创建了.它被称为主线程或者UI线程,它是非常重要的因为负责分发事件给对应的widget,还包含画图的事件.主线程贯穿用户和Android widget的交互的整个过程.例如,你触摸了屏幕上的按钮(Button),UI线程派发(dispatch)触摸(touch)事件给widget,widget设置为按下状态并向事件队列发送一个无效的请求.UI线程把这个请求弹出栈并且通知widget去重画它自己. 单线程模型

Android中轻松使用线程

当你第一次启动一个Android程序的时候,一个被 称为"main"的线程就被自动创建了.它被称为主线程或者UI线程,它是非常重要的因为负责分发事件给对应的widget,还包含画图的事件.主线程贯 穿用户和Android widget的交互的整个过程.例如,你触摸了屏幕上的按钮(Button),UI线程派发(dispatch)触摸(touch)事件给 widget,widget设置为按下状态并向事件队列发送一个无效的请求.UI线程把这个请求弹出栈并且通知widget去重画它自己. 单线

android 中的 Handler 线程间通信

一. 在MainActivity中为什么只是类似的写一行如下代码就可以使用handler了呢? Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // handle the nsg message... } }; private void sendMessage() { handler.sendEmptyMessage(11); } 打开handler的源码可以在它的构造函数中