当前位置: 编程技术>移动开发
本页文章导读:
▪(转)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。
原文地址:http://blog.csdn.net/djx123456/article/details/6325983
当一个程序第一次启动时,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的事件,有一定效果额~
不知道这么做会有什么后遗症。。。
错误:
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
@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
最新技术文章: