当前位置: 首页 > news >正文

Handler的基本使用

一、基本知识点

1、Intent intent = new Intent();//打开浏览器的
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));


2、SystemClock.sleep(20000);//睡眠20秒,用来掩饰想赢一场


3、耗时的操作都应该子线程中做
联网获取数据
大文件的拷贝
都需要放置在子线程来操作


onCreate()  按钮点击回调事件、对于显示的操作都是在主线程里面运行。UI线程。


4、handler的使用
new Handler();


Message msg = new Message();
   msg.what = UPDATE_DISPLAY;//设置消息的唯一识别
   msg.obj = i;
   mHandler.sendMessage(msg)



二、示例代码

package com.example.handlertest;


import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends Activity {


public TextView tv_num;

public static final int UPDATE_NUMBER = 0;

public int i = 0;

public Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what == UPDATE_NUMBER){
int i = (Integer) msg.obj;

tv_num.setText(i + "");
}
};
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

tv_num = (TextView) findViewById(R.id.tv_number);



}



public void add(View view){
new Thread(){
@Override
public void run() {
super.run();

while(i < 100){
SystemClock.sleep(1000);
i += 1;


Message msg = new Message();
msg.what = UPDATE_NUMBER;
msg.obj = i;
handler.sendMessage(msg);
}

}
}.start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}

相关文章:

  • Andriod Studio Clear Project或Rebuild Project出错
  • Activity的生命周期
  • javascript实现URL不缓存的方法
  • Android Studio VS Eclipse (还在用Eclipse?你OUT了!)
  • Android之TextView灵活使用
  • Android Studio安装后Fetching android sdk component information超时的解决方案
  • Git配置出现的问题
  • Android-studio+Genymotion模拟器的联合使用
  • 工作中遇到的一个多线程下导致RCW无法释放的问题
  • Android实例-拨打电话
  • 博弈SG函数
  • Android实例-发送信息
  • 利用jQuery实现鼠标滑过整行变色
  • Android项目之无线点餐(1)--点餐系统数据库设计
  • HDU 4757 Tree 可持久化字典树
  • 自己简单写的 事件订阅机制
  • Android组件 - 收藏集 - 掘金
  • C++类的相互关联
  • CSS中外联样式表代表的含义
  • Java,console输出实时的转向GUI textbox
  • JavaScript实现分页效果
  • JS 面试题总结
  • Linux Process Manage
  • Redis中的lru算法实现
  • SpiderData 2019年2月16日 DApp数据排行榜
  • vue脚手架vue-cli
  • Vue组件定义
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 力扣(LeetCode)22
  • 入门级的git使用指北
  • 我看到的前端
  • ​马来语翻译中文去哪比较好?
  • #ifdef 的技巧用法
  • (+4)2.2UML建模图
  • (1) caustics\
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (六)c52学习之旅-独立按键
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ***测试-HTTP方法
  • .libPaths()设置包加载目录
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @NestedConfigurationProperty 注解用法
  • [Android]通过PhoneLookup读取所有电话号码
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [c]统计数字
  • [C++]四种方式求解最大子序列求和问题
  • [CakePHP] 在Controller中使用Helper