package com.lzr;
////验证handler和Activity是在同一个线程中执行
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
public class Handlertest extends Activity {
/** Called when the activity is first created. */
Handler handler=new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
///普通执行线程的方法
//Thread t=new Thread();
//t.start();
///用post()启动线程,直接执run()方法
handler.post(r);
setContentView(R.layout.main);
System.out.println("Activity--->"+Thread.currentThread().getId());
System.out.println("activityname--->"+Thread.currentThread().getName());
}
Runnable r=new Runnable()
{
@Override
public void run() {
System.out.println("Activity--->"+Thread.currentThread().getId());
System.out.println("activityname--->"+Thread.currentThread().getName());
try {
///休眠5秒后启动线程
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
}
};
}
分享到:
相关推荐
1. 创建一个`Handler`实例,确保它在主线程中运行,以便它可以更新UI。 ```java Handler mHandler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(Message msg) { // 这里处理...
1. **多线程下载**:多线程下载是指在一个下载任务中,同时启动多个线程(通常每个线程负责下载文件的一部分),这样可以充分利用网络带宽,提高下载速度。在Android中,我们通常使用`java.util.concurrent`包中的...
在实际项目中,HandlerTest可能是一个测试类,用于验证Handler的正确性。编写这样的测试类可以检查消息的发送、接收以及处理逻辑是否按预期工作。测试应包括各种情况,如正常消息传递、延迟消息、空消息处理等。 ...
1. **Handler、Looper和Message**:这是一种常见的实现多线程的方式,通过创建一个后台线程,然后利用Looper和Handler进行消息传递。Looper在后台线程中不断循环读取消息队列,Handler则在主线程中发送消息,当消息...
8. **多线程考虑**:AMS的调度工作是在系统服务线程中进行的,而应用进程中创建Activity的操作则发生在主线程。理解这一异步处理机制有助于处理UI线程阻塞问题。 9. **异常处理**:在启动过程中可能会遇到各种异常...
在Android应用开发中,服务(Service)和活动(Activity)之间的通信是常见的需求。本示例文件"server无内存泄露.rar"着重展示了如何通过Handler机制实现Service与Activity间的双向通信,同时确保在使用过程中不会...
在这里,可能是第一个Activity创建了一个回调接口,并在第二个Activity中实现这个接口。当计数完成或有新的计数结果时,第二个Activity通过回调将结果传递回第一个Activity,然后在主线程中更新TextView。 3. **...
在Android开发中,短信验证是常见的用户身份验证方式,它通常涉及到一个倒计时控件,用于限制用户在一段时间内只能发送一次短信验证码。本文将详细介绍如何创建并使用一个自定义的"Android短信验证倒计时控件",以及...
在Android开发中,创建一个简单的摇奖Demo是一个有趣且实用的练习,可以帮助开发者熟悉和掌握Android的多线程处理、事件传递以及UI组件的使用。在这个项目中,我们主要涉及了以下几个关键知识点: 1. **随机数生成*...
在Android平台上,开发一个简单的登录验证项目是学习和掌握Android应用开发基础的重要步骤。这个小项目专注于用户界面设计、数据验证以及与服务器的交互,这些都是移动应用开发中的关键环节。以下将详细介绍涉及的...
为了保持用户界面的响应性,网络请求应在一个后台线程中执行,可以使用`AsyncTask`、`Thread`或`Handler`,或者使用现代的`Coroutines`(Kotlin)或`LiveData`(配合`ViewModel`)。 8. **权限管理**: 如果应用...
在Android应用开发中,倒计时(CountDownTimer)是一个常用的功能,特别是在各种计时类应用、游戏或者通知提醒中。本项目是一个Android应用源码示例,它实现了带暂停功能的倒计时器(TimeCountDown盒子),非常适合...
通常,我们在子线程中创建Handler实例,并通过Looper.prepare()和Looper.loop()启动消息循环,然后主线程中的Handler对象可以接收到并处理这些消息。 2. **内存泄漏的发生**: 当一个Handler对象与它的Looper和...
- AsyncTask或Handler/Looper:网络请求应在线程中执行,以避免阻塞主线程。可以使用AsyncTask,或者结合Handler和Looper实现后台任务。 7. **错误处理**: - 错误提示:当登录失败时,应用应提供明确的错误提示...
这涉及到Handler、Looper和Message的使用,以在子线程和主线程之间传递数据和执行UI更新。 5. **AndroidManifest.xml配置**:在应用中使用Socket需要在AndroidManifest.xml文件中声明相应的网络权限,如 `...
在压缩包子文件的文件名称列表中,“SmsValidateDemo”可能是一个示例项目,展示了如何在Android应用中实现短信验证功能。这个项目可能包含了以下几个关键部分: 1. **布局文件**:XML文件定义了UI元素,如输入框让...
登录和注册界面可能各自作为一个Activity,或者用更现代的方法,作为Fragment嵌入在一个单一的Activity中,这样可以实现更灵活的界面导航。 3. **EditText验证**:为了确保用户输入的有效性,如邮箱格式和密码强度...
在这个项目中,我们可以通过Activity来理解其核心概念和用法。 1. **Activity生命周期**:Activity有多个状态,包括创建(onCreate())、启动(onStart())、运行(onResume())、暂停(onPause())、停止(onStop...
在倒计时过程中,由于CountDownTimer的回调方法(如`onTick()`)是在工作线程中执行的,若要更新UI(这必须在主线程中进行),我们需要创建一个Handler实例,通过其`postDelayed()`方法将更新UI的任务发送到主线程。...