当前位置:  编程技术>移动开发
本页文章导读:
    ▪ProgressBa r 施用Handler        ProgressBa r 使用Handler e.g.使用Handler更新ProgressBar ---------------------------------- public class HandleActivity extends Activity{ //声明两个按钮控件 private Button startButton=null; private Button endButton=null; public void onCre.........
    ▪ 服务端自动获取apk资料的包名        服务端自动获取apk文件的包名 在服务器上获取apk文件的包名,其他网站是怎么做的我不知道,以下是我自己研究出来的;所需工具:apktool.jar(所有版本)以下是代码: public static void main(String[] args.........
    ▪ 访问Bitbucket的手机运用       访问Bitbucket的手机应用 http://blog.bitbucket.org/2011/12/21/mobile-apps-for-bitbucket/   Bitbeaker RepoMan Issue Bucket iOpenSource ......

[1]ProgressBa r 施用Handler
    来源: 互联网  发布时间: 2014-02-18
ProgressBa r 使用Handler

e.g.使用Handler更新ProgressBar

----------------------------------

public class HandleActivity extends Activity{ //声明两个按钮控件 private Button startButton=null; private Button endButton=null; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); } class StartButtonListener implements onClickListener{ public void onClick(View v){ handler.post(updateThread);//调用Handler的post方法,将要执行的线程对象添加到队列当中 } } class EndButtonListener implements OnClickListener{ public void onClick(View v){ handler.removeCallbacks(updateThread); } } //创建一个Handler对象 Handler handler=new Handler(); //将要执行的操作写在线程对象的run方法中 Runnale updateThread=new Runnable(){ public void run(){ System.out.println("updateThread"); //在run方法内部,执行postDelayed或者是post方法 handler.postDelayed(updateThread,3000);//隔3000毫秒过后,将线程放到消息队列中去 } } }



  

 

 

下面的代码是进度条:

Runnable progressThread=new Runnable(){ int i=0; public void run(){ i=i+10; //得到一个消息对象,Message类是由Android操作系统提供 Message msg=updateBarHandler.obtainMessage(); //将msg对象的arg1参数的值设置为i;还有个成员变量为arg2 msg.arg1=i; try{ Thread.sleep(1000); }catch(InterruptedException e){ e.printStackTrace(); } } } //.................................. class ButtonOnClickListener implements OnClickListener{ @Override public void onClick(View arg0) { handler.post(updateThread); } } Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { bar.setProgress(msg.arg1); handler.post(updateThread); } }; private Runnable updateThread=new Runnable() { int i=0; @Override public void run() { i+=10; Message msg=handler.obtainMessage(); msg.arg1=i; try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } //将msg对象放入消息队列当中 handler.sendMessage(msg); if(i==100){ handler.removeCallbacks(updateThread); } } };



 ...............................................................................

 

 

      

8.2.Handler与线程

1.采用post方法将消息放入队列的过程中,没有启动新的线程,而只是启动了run方法。解决方法

..先启动一个HandlerThread对象,然后使用HanderThread的getLooper()方法之前,必须先使用该类的start()方法。

然后自己定义的handler必须复写MyHandler(Looper looper);

 

2.Bundle的用法

3.在新线程当中处理消息的方法

  public class ThreadActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity2); System.out.println(Thread.currentThread().getId()); //生成一个HandlerThread对象,实现了使用Looper来处理消息队列的功能,这个类由Android提供 HandlerThread handlerThread=new HandlerThread("handler_thread"); handlerThread.start(); MyHandler myHandler=new MyHandler(handlerThread.getLooper()); Message msg=myHandler.obtainMessage(); Bundle b=new Bundle(); b.putInt("age", 20); b.putString("name", "John"); //msg.obj="abc";msg.setData(b ); //将msg发送到目标对象,所谓的目标对象,就是生成该msg对象的handler对象 msg.sendToTarget(); } class MyHandler extends Handler{ public MyHandler(){} public MyHandler(Looper looper){ super(looper); } @Override public void handleMessage(Message msg) { System.out.println("Handler-->"+Thread.currentThread().getId()); } } }



 

 


    
[2] 服务端自动获取apk资料的包名
    来源: 互联网  发布时间: 2014-02-18
服务端自动获取apk文件的包名
在服务器上获取apk文件的包名,其他网站是怎么做的我不知道,以下是我自己研究出来的;

所需工具:
apktool.jar(所有版本)

以下是代码:
	public static void main(String[] args) {
		ApkDecoder d = new ApkDecoder();
		d.setApkFile(new File("D:/test/qd.apk"));
		try {
			Set<ResPackage> p = d.getResTable().listMainPackages();
			for(ResPackage r:p){
				//这里set最大只会等于1
				//打印出包名
				System.out.println(r.getName());
			}
		} catch (AndrolibException e) {
			e.printStackTrace();
		}
	}


此方法也适用于android手机,不过apktool.jar需要裁减,附件中是已经裁减好的,使用方法如上;
有特殊业务需求的可以下载试试,反正我有这种需求


现在有一个问题要请教大家:
如何用apktool取得版本号,尤其是android:versionCode,apktool我研究了很久,都不知道怎么取,也不知道它是否支持取版本号

    
[3] 访问Bitbucket的手机运用
    来源: 互联网  发布时间: 2014-02-18
访问Bitbucket的手机应用

http://blog.bitbucket.org/2011/12/21/mobile-apps-for-bitbucket/

 

Bitbeaker

RepoMan

Issue Bucket

iOpenSource


    
最新技术文章:
▪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实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
操作系统 iis7站长之家
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


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

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

浙ICP备11055608号-3