zoukankan      html  css  js  c++  java
  • 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);
    
        }
    }
  • 相关阅读:
    重置 Mac 上的 NVRAM 或 PRAM
    为什么我的mac插入耳机耳机没有声音呢?
    Redis 实现安全队列
    设计模式之十三:适配器模式(Adapter)
    关于cocos2dx手游lua文件加密的解决方式
    Django中载入js和css文件
    CCNA 例题精选
    JNI/NDK开发指南(四)——字符串处理
    error when loading the sdk 发现了元素 d:skin 开头无效内容
    Webx学习(一)
  • 原文地址:https://www.cnblogs.com/cuikang/p/5370264.html
Copyright © 2011-2022 走看看