Android中实现Runnable接口简单例子
本课讲的是如何实现一个Runnable,在一个独立线程上运行Runnable.run()方法.Runnable对象执行特别操作有时叫作任务。
Thread和Runnable都是基础的类,靠他们自己,能力有限。作为替代,Android有强大的基础类,像HandlerThread,AsyncTask,IntentService。Thread和Runnable也是ThreadPoolExecutor的基础类。这个类可以自动管理线程和任务队列,甚至可以并行执行多线程。
定义一个实现Runnable接口的类
public class PhotoDecodeRunnable implements Runnable {
...
@Override
public void run() {
/*
* Code you want to run on the thread goes here
*/
...
}
...
}
实现run()方法
Runnable.run()方法包含了要执行的代码。通常,Runnable里可以放任何东西。记住,Runnable不会在UI运行,所以不能直接修改UI对象属性。与UI通讯,参考Communicate with the UI Thread
在run()方法的开始,调用 android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);设置线程的权重,android.os.Process.THREAD_PRIORITY_BACKGROUND比默认的权重要低,所以资源会优先分配给其他线程(UI线程)
你应该保存线程对象的引用,通过调用 Thread.currentThread()
class PhotoDecodeRunnable implements Runnable {
...
/*
* Defines the code to run for this task.
*/
@Override
public void run() {
// Moves the current Thread into the background
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
...
/*
* Stores the current Thread in the PhotoTask instance,
* so that the instance
* can interrupt the Thread.
*/
mPhotoTask.setImageDecodeThread(Thread.currentThread());
...
}
...
}
相关推荐
-
android Gallery组件实现的iPhone图片滑动效果实例
实现的效果图,可左右滑动: 一.先在将Gallery标签放入: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layo
-
Android中自定义加载样式图片的具体实现
先让大家看看效果图吧,相信很多Android初学者都想知道这中效果是怎么实现的,来上图: 想实现上面这张图中的自定义加载样式,其实很简单,首先我们需要的布局组件有ProcessBar和TextView,下面是布局文件的代码(只是加载的页面的布局): 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.an
-
Unity3D游戏引擎实现在Android中打开WebView的实例
本文讲述了如何在Unity中调用Android中的WebView组件,实现内部浏览器样式的页面切换.首先打开Eclipse创建一个Android的工程: UnityTestActivity.java 入口Activity ,Unity中会调用这个Activity中的方法从而打开网页. package com.xys; import android.content.Context; import android.content.Intent; import android.os.Bundle; i
-
android界面布局之实现文本块布局效果示例
复制代码 代码如下: package cn.aibow.android.layoutdemo1; import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.widget.TextView;import android.widget.Toast; public
-
android自定义按钮示例(重写imagebutton控件实现图片按钮)
由于项目这种类型的图片按钮比较多,所以重写了ImageButton类. 复制代码 代码如下: package me.henji.widget; import android.content.Context;import android.graphics.ColorMatrix;import android.graphics.ColorMatrixColorFilter;import android.util.AttributeSet;import android.view.MotionEvent
-
Android实现GPS定位代码实例
通过GPS取得的是一个Location类型的经纬度, 可以转换为两个Double 纬度和经度. 纬度: 23.223871812820435 纬度: 113.58986039161628 首先创建一个TextView和两个Button <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content"
-
android实现通知栏下载更新app示例
1.设计思路,使用VersionCode定义为版本升级参数.android为我们定义版本提供了2个属性: 复制代码 代码如下: <manifest package="com.cnblogs.tianxia.subway"android:versionCode="1" <!--Integer类型,系统不显示给用户-->android:versionName="1.0"<!--String类型,系统显示用户-->>
-
Android实现的可以调整透明度的图片查看器实例
本文以实例讲解了基于Android的可以调整透明度的图片查看器实现方法,具体如下: main.xml部分代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
-
Android中实现Runnable接口简单例子
本课讲的是如何实现一个Runnable,在一个独立线程上运行Runnable.run()方法.Runnable对象执行特别操作有时叫作任务. Thread和Runnable都是基础的类,靠他们自己,能力有限.作为替代,Android有强大的基础类,像HandlerThread,AsyncTask,IntentService.Thread和Runnable也是ThreadPoolExecutor的基础类.这个类可以自动管理线程和任务队列,甚至可以并行执行多线程. 定义一个实现Runnable接口的
-
Android中WebView的一些简单用法
Android中WebView的一些简单用法 一直想写一个关于 WebView 控件的 一些简单运用,都没什么时间,这次也是挤出时间写的,里面的一些基础知识就等有时间再更新讲解一下,今天就先把项目出来做一些简单介绍,过多的内容可以看我的源码,都传到github上了. 下面是项目的效果图: 应用用到的是 MVP 设计模式,对这种模式还不太了解的可以先自行google一下,不然项目估计会看的晕,虽然我的代码都很简洁的. 对于MVP 可以带着一个思路看源码,那就是 activity(或其他组件)通过
-
解析Android中string-array数据源的简单使用
在Android中,用string-array是一种简单的提取XML资源文件数据的方法.例子如下:把相应的数据放到values文件夹的arrays.xml文件里 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="city"> <item>厦门市</item&
-
Android中socket通信的简单实现
Android中socket通信简单实现,供大家参考,具体内容如下 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP. 先上个图: 这里以一个APP作为服务器跟客户端为示例 1.添加网络访问权限 <uses-permission android:name="android.permission.INTERNET" /> 2.写服务器,在APP上启动 import java.io.DataInputStream; impo
-
Android中Glide实现超简单的图片下载功能
本文介绍了Glide实现超简单的图片下载功能,具体步骤如下: 添加依赖 compile 'com.github.bumptech.glide:glide:3.7.0' 添加权限 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&
-
Android中dumpsys命令用法简单介绍
在Android手机上, 通过使用adb shell命令可以进入android系统的shell, 该shell除支持一些常用的标准命令之外,还支持一些和android系统相关的其他命令, 这些命令可以打印出系统当前的状态信息. dumpsys就是这样一个命令. 使用 adb shell 进入命令行, 敲入dumpsys, 打印出的信息超级多, 在我的nexus 5机器上,输出多达67000行. 首先从打印信息的开始部分看起: Currently running services: Surface
-
Erlang中的socket编程简单例子
Erlang 中gen_tcp 用于编写TCP程序,gen_udp用于编写UDP程序.一个简单的TCP服务器echo示例: 复制代码 代码如下: Start_echo_server()-> {ok,Listen}= gen_tcp:listen(1234,[binary,{packet,4},{reuseaddr,true},{active,true}]), {ok,socket}=get_tcp:accept(Listen), gen_tc
-
Android中验证码倒计时的简单实现方法示例
前言 现在的很多app都是使用手机注册的,为了确认使用的是自己的手机,都会加上一个短线验证码的选项,最近公司的项目使用到了这个短信验证码,并且要加入验证码倒计时功能,也就是60秒才能发送一次验证码,再次做过记录,以后使用的时候,可以随时拿来用. 实现 发送验证码的时候一般都会有一个按钮,点击之后便会给你输入的手机发送一条验证码,我这里使用的是一个TextView,显示特定的数字,只用设置TextView的点击事件即可: Android中有一个类,可以很方便的时候该功能,但是也会存在一个问题,就是
-
Android中AnimationDrawable使用的简单实例
首先,可以在drawable文件夹下定义一个xml的文件.如下所示: 复制代码 代码如下: <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/compass_1" android:duration=&qu
-
Go语言中转换JSON数据简单例子
Go语言转换JSON数据真是非常的简单. 以EasyUI的Demo为例,将/demo/datagrid/datagrid_data1.json 拷贝到$GOPATH/src目录: JSON.go: 复制代码 代码如下: package main import ( "encoding/json" "fmt" "io/ioutil" ) type product struct { Pro
随机推荐
- iOS11 下载之断点续传的bug的解决方法
- 简单实现JS上传图片预览功能
- java selenium 操作浏览器实例
- 详解Nginx防盗链和Nginx访问控制与Nginx解析php的配置
- IOS代码笔记之左右滑动效果
- js登录弹出层特效
- PHP使用ob_start生成html页面的方法
- Android优质索尼滚动相册
- 利用soaplib搭建webservice详细步骤和实例代码
- 23个超流行的jQuery相册插件整理分享
- 表单内同名元素的控制
- 基于Socket的网络连接 Flex与.NET互操作(一)
- 菜鸟学PHP之Smarty入门
- PHP分页初探 一个最简单的PHP分页代码的简单实现
- Spring Cloud CLI简单介绍
- Java容器类源码详解 Deque与ArrayDeque
- Docker数据卷和容器编排的使用
- 详解Spring 参数验证@Validated和@Valid的区别
- 在Pytorch中计算自己模型的FLOPs方式
- unity实现按住鼠标选取区域截图