当前位置:  编程技术>移动开发
本页文章导读:
    ▪(转)handler施用小结        (转)handler使用小结 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕.........
    ▪ Titanium开发遇到的一个‘isn't already in the context’ 异常        Titanium开发遇到的一个‘isn't already in the context’ 错误 错误:Adding an event listener to a proxy that isn't already in the context。用 navGroup打开一个window,然后新建leftnavbutton,并注册事件,会报错:Adding.........
    ▪ bat起步java       bat启动java @echo offSETLOCAL ENABLEDELAYEDEXPANSIONset classpath1=FOR %%c in ("../Depends/*.jar") DO set classpath1=!classpath1!;../Depends/%%cset classpath2=FOR %%c in ("../Bin/*.jar") DO set classpath2=!classpath2!;../Bin/%%cset classpath1=...........

[1](转)handler施用小结
    来源: 互联网  发布时间: 2014-02-18
(转)handler使用小结
当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理。所以主线程通常又被叫做UI线程。

      比如说从网上获取一个网页,在一个TextView中将其源代码显示出来,这种涉及到网络操作的程序一般都是需要开一个线程完成网络访问,但是在获得页面源码后,是不能直接在网络操作线程中调用TextView.setText()的.因为其他线程中是不能直接访问主UI线程成员 。
android提供了几种在其他线程中访问UI线程的方法。
Activity.runOnUiThread( Runnable )
View.post( Runnable )
View.postDelayed( Runnable, long )
Hanlder

这里摘抄了一点handler使用方法

Handler的使用场合:

1、 to schedule messages and runnables to be executed as some point in the future;
      安排messages和runnables在将来的某个时间点执行。
2、 to enqueue an action to be performed on a different thread than your own.
      将action入队以备在一个不同的线程中执行。即可以实现线程间通信。比如当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了。由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面。


通过Handler更新UI实例:
步骤:
1、创建Handler对象(此处创建于主线程中便于更新UI)。
2、构建Runnable对象,在Runnable中更新界面。
3、在子线程的run方法中向UI线程post,runnable对象来更新UI。

package djx.android;

import djx.downLoad.DownFiles;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class downLoadPractice extends Activity {
	private Button button_submit=null;
	private TextView textView=null;
	private String content=null;
	private Handler handler=null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //创建属于主线程的handler
        handler=new Handler();
        
        button_submit=(Button)findViewById(R.id.button_submit);
        textView=(TextView)findViewById(R.id.textView);
        button_submit.setOnClickListener(new submitOnClieckListener());
    }
    //为按钮添加监听器
    class submitOnClieckListener implements OnClickListener{
		@Override
		public void onClick(View v) {
//本地机器部署为服务器,从本地下载a.txt文件内容在textView上显示			
			final DownFiles df=new DownFiles("http://192.168.75.1:8080/downLoadServer/a.txt");
			textView.setText("正在加载......");
			new Thread(){
				public void run(){	
					content=df.downLoadFiles();		
					handler.post(runnableUi); 
					}					
			}.start();						
		}
    	
    } 

   // 构建Runnable对象,在runnable中更新界面
    Runnable   runnableUi=new  Runnable(){
		@Override
		public void run() {
			//更新界面
			textView.setText("the Content is:"+content);
		}
    	
    };
    	
    
}


原文地址:http://blog.csdn.net/djx123456/article/details/6325983

    
[2] Titanium开发遇到的一个‘isn't already in the context’ 异常
    来源: 互联网  发布时间: 2014-02-18
Titanium开发遇到的一个‘isn't already in the context’ 错误
错误:
Adding an event listener to a proxy that isn't already in the context。

用 navGroup打开一个window,然后新建leftnavbutton,并注册事件,会报错:
Adding an event listener to a proxy that isn't already in the context。

一步步删代码,发现是事件注册问题。。
网上资料:http://developer.appcelerator.com/question/135176/error-adding-an-event-listener-to-a-proxy-that-isnt-already-in-the-context#answer-237243

“A quick and dirty fix for this issue is to set the backgroundGradient AFTER you have created the button and added it to a view. This will put the button into the context and prevent this message from displaying.”

我觉得这句话有点道理,所以我加了settimeout来延时注册 button的事件,有一定效果额~

不知道这么做会有什么后遗症。。。

setTimeout(function() {
        leftButton.addEventListener("click", function() {
            currentWindow.fireEvent("closeWindow");
        });
    }, 50);

    
[3] bat起步java
    来源: 互联网  发布时间: 2014-02-18
bat启动java
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

set classpath1=
FOR %%c in ("../Depends/*.jar") DO set classpath1=!classpath1!;../Depends/%%c

set classpath2=
FOR %%c in ("../Bin/*.jar") DO set classpath2=!classpath2!;../Bin/%%c

set classpath1=../Conf;%classpath1%;%classpath2%
echo %classpath1%
java -classpath %classpath1% -Djavax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory ServiceStartup
pause


#!/bin/sh

export CLASSPATH=
for jarpath in `ls ../Depends/*.jar` 
do 
   CLASSPATH=$CLASSPATH:$jarpath    
done 

for jarpath in `ls ../Bin/*.jar` 
do 
   CLASSPATH=$CLASSPATH:$jarpath    
done 

export CLASSPATH=$CLASSPATH:../Conf

java -classpath $CLASSPATH -Djavax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory ServiceStartup

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
java开发知识 iis7站长之家
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3