安卓学习体会4:线程中发消息给主线程表示已完成

BCBPLC 2013-11-18 09:54:10
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
import android.os.*;

ublic class MainActivity extends Activity {

Button button1;
Handler handler;
TextView textView1;
boolean isSuccess;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView1=(TextView)findViewById(R.id.textView1);
handler=new Handler()
{
@Override
public void handleMessage(Message msg)
{
setTitle(isSuccess?"已成功下载":"下载失败");
Toast.makeText(MainActivity.this, isSuccess?"已成功下载":"下载失败",8000).show();
super.handleMessage(msg);
}
};
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override
public void run()
{

try
{
//---线程中执行代码------------------
isSuccess=true;
}
catch(Exception e)
{
isSuccess=false;
}
Message m=handler.obtainMessage();
handler.sendMessage(m);
isSuccess=false;
}
}).start();
}
}); //new OnClickListener
}
...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
福清仔 2013-11-21
  • 打赏
  • 举报
回复
看清楚了,楼主真是个好人
uramiyahonpo 2013-11-19
  • 打赏
  • 举报
回复
学习学习了,多谢
BCBPLC 2013-11-19
  • 打赏
  • 举报
回复
工程中要有 WRITE_EXTERNAL_STOREAGE权限 和 INTERNET 权限 此线程中下载程序已完全通过!
BCBPLC 2013-11-19
  • 打赏
  • 举报
回复
package com.proj.mytest; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.widget.*; import android.view.View; import android.view.View.OnClickListener; import android.view.MotionEvent; import android.view.View.OnTouchListener; import java.net.URL; import java.io.*; import android.graphics.Bitmap; import android.os.*; public class MainActivity extends Activity { ImageView imageView1; TextView textView1; Button button1; RelativeLayout layout; static int count=0; //---------------- boolean flag; Handler handler; void copyfile(InputStream f1,OutputStream f2) { // 流复制 byte[] buf=new byte[1024]; int size=0; try { while ((size=f1.read(buf))>0) f2.write(buf,0,size); f1.close();f2.close(); } catch(Exception e) { } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("多线程下载试验"); setContentView(R.layout.activity_main); handler=new Handler() { @Override public void handleMessage(Message msg) // 收到消息 { Toast.makeText(MainActivity.this, flag?"文件下载完成":"文件下载失败", 8000).show(); setTitle("完成!"); super.handleMessage(msg); } }; button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { String http="http://p1.qhimg.com/t01bb524e6934bce208.jpg"; InputStream inS; // 下载这幅图 FileOutputStream outS; try { outS=new FileOutputStream("/sdcard/pic.jpg"); URL url=new URL(http); inS= url.openStream(); copyfile(inS,outS); outS.close(); flag=true; } catch(Exception e) { flag=false; } Message m=handler.obtainMessage(); handler.sendMessage(m); // 发消息 } //public }).start(); } //public }); // new On } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Birds2018 2013-11-19
  • 打赏
  • 举报
回复
教程? 感觉

button1.setOnClickListener(new OnClickListener() 
   {
   @Override 
    	public void onClick(View v)
        	{
        new Thread(new Runnable()
           {
            	@Override 
                public void run()
                 {

                   try
                    {
                       //---线程中执行代码------------------
                       isSuccess=true;
                    }
                   catch(Exception e)
                   {
                	   isSuccess=false;
                   }
                    Message m=handler.obtainMessage();
                    handler.sendMessage(m);
                    isSuccess=false;
                 }
          }).start();
        }
   });  //new OnClickListener

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧