AsyncTask多线程

今天学习了一下多线程

因为是别人原创的,我就不贴代码了,直接放上链接,有兴趣的朋友可以去看看,

我贴上我的布局代码给大家参考一下


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />


    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="134dp"
        android:layout_toRightOf="@+id/textView1" />


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/progressBar1"
        android:layout_below="@+id/progressBar1"
        android:layout_marginTop="80dp"
        android:onClick="onClick_Start"
        android:text="Button" />


    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignParentRight="true"
        android:layout_marginRight="49dp"
        android:onClick="onClick_Cancel"
        android:text="Button" />


</RelativeLayout>



http://blog.csdn.net/uaecho/article/details/9425735


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。以下是使用AsyncTask多线程方式编写一个模拟从网络下载文件的程序的示例代码: ```java public class DownloadTask extends AsyncTask<Void, Integer, Void> { private ProgressDialog mProgressDialog; private Context mContext; public DownloadTask(Context context) { mContext = context; } @Override protected void onPreExecute() { super.onPreExecute(); mProgressDialog = new ProgressDialog(mContext); mProgressDialog.setMessage("正在下载文件..."); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(false); mProgressDialog.show(); } @Override protected Void doInBackground(Void... voids) { for (int i = 1; i <= 100; i++) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } publishProgress(i); } return null; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); mProgressDialog.setProgress(values[0]); } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); mProgressDialog.dismiss(); Toast.makeText(mContext, "下载完成!", Toast.LENGTH_SHORT).show(); } } ``` 在Activity中调用这个AsyncTask: ```java public class MainActivity extends AppCompatActivity { private Button mDownloadButton; private DownloadTask mDownloadTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDownloadButton = findViewById(R.id.download_button); mDownloadButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mDownloadTask = new DownloadTask(MainActivity.this); mDownloadTask.execute(); } }); } @Override protected void onDestroy() { super.onDestroy(); if (mDownloadTask != null) { mDownloadTask.cancel(true); } } } ``` 在上面的代码中,我们定义了一个名为DownloadTask的AsyncTask类,它的参数是Void,进度值是Integer,结果值是Void。我们在doInBackground()方法中执行100次循环,每次循环休眠50毫秒,并通过publishProgress()方法来更新进度条的进度值。在onPreExecute()方法中,我们创建并显示一个ProgressDialog来显示下载进度。在onPostExecute()方法中,我们关闭ProgressDialog并显示一个Toast提示用户下载完成。 在Activity中,我们在点击“点击加载”按钮时创建并执行DownloadTask。在Activity销毁时,我们检查DownloadTask是否正在运行,如果是则取消它,以避免内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值