android主线程和Activity关系

时间:2022-04-02 07:36:05
android主线程和activity有什么关系,我们说主线程只可以有一个而Activity可以有多个,更新界面的时候是不是每一个Activity都可以更新呢?还是只有主要启动的那个Activity界面可以更新,
如果每一个Activity都可以实现界面的更新那么主线程呢在哪里是不是每一个activity都在主线程里这是一个什么样的机制谁能帮我解答????

5 个解决方案

#1


主线程是 android 里面用来绘制 ui 界面的线程,所有非 ui 线程除非使用了 Looper 否则都不能发送消息来更新 ui 线程,,

一个 app 可以有多个 activity, 但是他们的 activity 都是在同一个线程中进行绘制的,所以只有一个主线程,也就是他们都运行在同一个线程上

#2


@kifile
那意思就是所有的Activity都共享主线程大家都可以进行更新自己的界面??
我们只要确保更新界面是在Activity的onCreate()方法中就可以是这样吗?

引用 1 楼 kifile 的回复:
主线程是 android 里面用来绘制 ui 界面的线程,所有非 ui 线程除非使用了 Looper 否则都不能发送消息来更新 ui 线程,,

一个 app 可以有多个 activity, 但是他们的 activity 都是在同一个线程中进行绘制的,所以只有一个主线程,也就是他们都运行在同一个线程上

#3


我的意思是在主线程能够更新 ui,onCreate 可以, onResume 可以,你处理点击事件,实际上也在 ui 线程,所以可以

如果你新开线程,例如 new Thread(){
   protected void run(){
    text.setText("更新");
}
}.start();

这种由于不是在 ui 线程,就不能刷新界面

#4


嗯这个我知道我想理解这句话是每一个Activity都可以更新自己的界面他们共享主线程对把

#5


引用 4 楼 songjunyan 的回复:
嗯这个我知道我想理解这句话是每一个Activity都可以更新自己的界面他们共享主线程对把


对的.
对于主线程中更新UI,用Looper外,还可以用Handler,实际中用handler将更新UI操作插入主线程的使用更方便些,个人觉得.

#1


主线程是 android 里面用来绘制 ui 界面的线程,所有非 ui 线程除非使用了 Looper 否则都不能发送消息来更新 ui 线程,,

一个 app 可以有多个 activity, 但是他们的 activity 都是在同一个线程中进行绘制的,所以只有一个主线程,也就是他们都运行在同一个线程上

#2


@kifile
那意思就是所有的Activity都共享主线程大家都可以进行更新自己的界面??
我们只要确保更新界面是在Activity的onCreate()方法中就可以是这样吗?

引用 1 楼 kifile 的回复:
主线程是 android 里面用来绘制 ui 界面的线程,所有非 ui 线程除非使用了 Looper 否则都不能发送消息来更新 ui 线程,,

一个 app 可以有多个 activity, 但是他们的 activity 都是在同一个线程中进行绘制的,所以只有一个主线程,也就是他们都运行在同一个线程上

#3


我的意思是在主线程能够更新 ui,onCreate 可以, onResume 可以,你处理点击事件,实际上也在 ui 线程,所以可以

如果你新开线程,例如 new Thread(){
   protected void run(){
    text.setText("更新");
}
}.start();

这种由于不是在 ui 线程,就不能刷新界面

#4


嗯这个我知道我想理解这句话是每一个Activity都可以更新自己的界面他们共享主线程对把

#5


引用 4 楼 songjunyan 的回复:
嗯这个我知道我想理解这句话是每一个Activity都可以更新自己的界面他们共享主线程对把


对的.
对于主线程中更新UI,用Looper外,还可以用Handler,实际中用handler将更新UI操作插入主线程的使用更方便些,个人觉得.