andorid 多线程handler用法
.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context="com.hanqi.application3.UIActivity7"
- android:orientation="vertical">
- <AutoCompleteTextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="自动完成文本编辑框"
- android:id="@+id/actv_1"
- android:completionThreshold="1"/>
- <!--completionThreshold 提示所需要的字符-->
- <Spinner
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/sp_1">
- </Spinner>
- <Button
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="状态栏提示"
- android:onClick="notification_onClick"/>
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/da2"
- android:id="@+id/iv_3"/>
- </LinearLayout>
.java
- package com.hanqi.application3;
- import android.app.Notification;
- import android.app.NotificationManager;
- import android.app.PendingIntent;
- import android.content.Intent;
- import android.os.Handler;
- import android.os.Message;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.AutoCompleteTextView;
- import android.widget.ImageView;
- import android.widget.Spinner;
- import android.widget.Toast;
- import java.util.Timer;
- import java.util.TimerTask;
- public class UIActivity7 extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_ui7);
- AutoCompleteTextView actv_1 = (AutoCompleteTextView)findViewById(R.id.actv_1);
- //设置自动完成的数据源
- String[] strings = {"China","Child","Chile","Chinese","Add","All","Class","Ddp"};
- ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.layout_array,strings);
- actv_1.setAdapter(arrayAdapter);
- //下拉列表
- String[] strings1 = {"China","Child","Chile","Chinese","Add","All","Class","Ddp"};
- ArrayAdapter<String> arrayAdapter1 = new ArrayAdapter<String>(this,R.layout.layout_array,strings1);
- Spinner sp1= (Spinner)findViewById(R.id.sp_1);
- sp1.setAdapter(arrayAdapter1);
- sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- Toast.makeText(UIActivity7.this, "position ="+position, Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- Toast.makeText(UIActivity7.this, "什么也没选", Toast.LENGTH_SHORT).show();
- }
- });
- //handler
- final ImageView iv3 = (ImageView)findViewById(R.id.iv_3);
- final int[] iImageid = {R.drawable.da1,R.drawable.da2,R.drawable.da3,R.drawable.da4};
- //继承Handler
- final Handler handler = new Handler()
- {
- int i = 0;
- //处理消息的回调方法
- //重写
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- //判断消息的类别
- if(msg.what ==1)
- {
- //切换图片
- iv3.setImageResource(iImageid[i++ % iImageid.length]);
- // i++;
- // if(i==10)
- // {
- // i=0;
- // }
- }
- }
- };
- //在新线程发送消息
- //定式循环发送
- //定时器:启动新线程,定时执行代码
- new Timer().schedule(new TimerTask() {
- @Override
- public void run() {
- //发送消息
- //空消息
- handler.sendEmptyMessage(1);
- }
- },1000,2000);
- }
- public void notification_onClick(View v)
- {
- //1.获取状态栏消息管理器
- NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
- //3.构建意图
- Intent intent = new Intent(this,UIActivity2.class);
- //4.获取PendingIntent
- PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0);
- //2.构建消息 方法链调用
- Notification nt = new Notification.Builder(this)
- .setContentTitle("这是一个通知")
- .setContentText("这是通知内容:点击打开新的界面 ")
- .setTicker("新通知")
- .setSmallIcon(R.drawable.da1)//图片
- .setAutoCancel(true)
- .setDefaults(Notification.DEFAULT_ALL)//声音
- .setContentIntent(pendingIntent)
- .build();
- //交给管理器,发出消息
- nm.notify(0,nt);
- }
- }
andorid 多线程handler用法的更多相关文章
- C#多线程的用法8-线程间的协作AutoResetEvent
AutoResetEvent自动重置事件,与ManualResetEvent是相对的而言.它同样用于线程间同步,请对照<C#多线程的用法7-线程间的协作ManualResetEvent>进 ...
- Python爬虫进阶五之多线程的用法
前言 我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理. 首先声明一点! 多线程和多进程是不一样的!一个是 thread ...
- android中handler用法总结
一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...
- Android(java)学习笔记134:Handler用法总结 和 秒表案例
一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...
- Android学习笔记--Handler用法总结
不错的例子:http://www.cnblogs.com/menlsh/archive/2013/06/07/3125341.html 转自:一叶知秋的博客 http://blog.sina.com. ...
- C#多线程的用法10-线程池
TheadPool:在进行多线程编程时,如果不想频繁的创建线程,那可以考虑使用使用线程池来完成多线程编程的工作.你只需将要处理的任务交付给ThreadPool,如果ThreadPool中有空闲的线程, ...
- Android(java)学习笔记76:Handler用法总结 和 秒表案例
一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...
- Handler用法总结
一.线程通讯问题 1.1 Message.Handler.Looper 在Android中提供了一种异步回调机制Handler,我们可以它来完成一个很长时间的任务. Handler基本使用: 在主线程 ...
- Handler用法
1.子线程创建handler 方法一 HandlerThread handlerThread = new HandlerThread(" sub thread name"); / ...
随机推荐
- 神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?(转)
为什么引入激活函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层 ...
- pandas.DataFrame.to_excel
1. file_name = 'aa.xlsx' df.to_excel(file_name) #这种file_name不能重复,已经生成过的就会报错 writer = pd.ExcelWriter( ...
- quast-lg
1.官网简介 http://cab.spbu.ru/software/quast-lg/ QUAST- lg是QUAST的一个扩展,用于评估大型基因组装配(直至哺乳动物大小).QUAST- lg从5. ...
- openssl数字证书常见格式 协议
证书主要的文件类型和协议有: PEM.DER.PFX.JKS.KDB.CER.KEY.CSR.CRT.CRL .OCSP.SCEP等. PEM – Openssl使用 PEM(Privacy Enha ...
- AssetBundle Manager
[AssetBundle Manager] AssetBundleManager是一个款Unity公司制作的Unity库. 1.Simulation Mode The main advantage o ...
- Nodejs this详解
[Nodejs this详解] Nodejs中, 文件层this,指向的是module.export. 函数层this,指向的是global对象. 参考:http://www.jb51.net/art ...
- javascript学习笔记(一):基础、输出、注释、引用、变量、数据类型
javascript脚本必须位于<script></script>之间,<script>标签可以位于<head>中,也可以位于<body>中 ...
- Java String和StringBuffer和StringBuilder
最近在牛课网上做了几道字符串操作的题目,好久没有做题了,之前用的也是大一时C语言做的,对Java字符串操作不太了解,所以深入了解一下String类的相关用法 String构造方法 String() 空 ...
- Android开发之getX,getRawX,getWidth,getTranslationX等的区别
转载请注明出处:http://blog.csdn.net/dmk877/article/details/51550031 好久没写博客了,最近工作确实挺忙的,刚刚结束了一个TV项目的开发,对 ...
- sql去除重复语句
转自芙蓉清秀的BLOG http://blog.sina.com.cn/liurongxiu1211 sql去除重复语句 (2012-06-15 15:00:01) sql 单表/多表查询去除重复记 ...