07 總結ProgressDialog 異步任務

1,ProgressDialog
?? ?>?? ??? ?//使用對象? 設置標題
?? ??? ??? ?progressDialog.setTitle("標題");
?? ??? ??? ?//設置圖標
?? ??? ??? ?progressDialog.setIcon(R.drawable.ic_launcher);
?? ??? ??? ?//設置展示的內容
?? ??? ??? ?progressDialog.setMessage("正在下載請稍等....");
?? ??? ??? ?//設置樣式
?? ??? ??? ?progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
?? ??? ??? ?//展示
?? ??? ??? ?progressDialog.show();

?? ??? ??? ?

2,UI線程和工作線程

?? ?>Ui線程也是Main線程? 負責會在UI界面和事件分發

?? ?倆個主要要素:
?? ??? ??? ?>1,在Ui線程不能做阻塞操作? (在主線程阻塞超過5s程序出錯? "程序無反應")
?? ??? ??? ?>2,在主線程以外的線程(子線程)不能更新UI

3, 什么是異步任務
?? ?>在子線程做耗時操作? 將結果回調到主線程

4, 為什么要使用異步任務
?? ?
?? ?>1,在Ui線程不能做阻塞操作? (在主線程阻塞超過5s程序出錯? "程序無反應")? 4.0以后? 不允許在主線程下載
?? ?>2,在主線程以外的線程(子線程)不能更新UI


?? ? * 1,創建一個類 繼承AsyncTask,同時聲明三個參數
?? ? * Params:子線程執行方法里參數類型
?? ? * Progress;子線程執行任務的進度類型 如果不想展示進度? Void
?? ? * Result:子線程執行任務的結果類型
?? ? *
?? ? * 2,實現核心方法
?? ? * doInBackground(String... params){}
?? ? *
?? ? * onPostExecute(byte[] result)
?? ? *
?? ? * 3,在主線程中執行異步請求


?? ?>完整的AsyncTask
?? ?public class MyAsyncTask extends AsyncTask<String, Integer, List<String>>{
?? ??? ?
?? ??? ?/**
?? ??? ? * 在首次執行異步任務時? 調用此方法?? 做初始化操作
?? ??? ? */
?? ??? ?@Override
?? ??? ?protected void onPreExecute() {
?? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ?super.onPreExecute();
?? ??? ?}

?? ??? ?/**
?? ??? ? * 在子線程中執行?? 做耗時操作
?? ??? ? */
?? ??? ?@Override
?? ??? ?protected List<String> doInBackground(String... params) {
?? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ?//publishProgress(values)
?? ??? ??? ?return null;
?? ??? ?}
?? ??? ?/**
?? ??? ? * 更新進度的方法?? 在doInBackground中 執行publishProgress(values)? 將進度值發送給onProgressUpdate
?? ??? ? */
?? ??? ?@Override
?? ??? ?protected void onProgressUpdate(Integer... values) {
?? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ?super.onProgressUpdate(values);
?? ??? ?}
?? ??? ?
?? ??? ?/**
?? ??? ? * 在主線程中更新UI 在執行完doInBackground之后執行 onPostExecute
?? ??? ? */
?? ??? ?@Override
?? ??? ?protected void onPostExecute(List<String> result) {
?? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ?super.onPostExecute(result);
?? ??? ?}
?? ??? ?
?? ??? ?
?? ??? ?//點擊其他按鈕? 取消AsyncTask時? 執行此方法
?? ??? ?@Override
?? ??? ?protected void onCancelled(List<String> result) {
?? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ?super.onCancelled(result);
?? ??? ?}
?? ??? ?
?? ??? ?
?? ??? ?
?? ?}



5, 設置View的顯示與隱藏
?? ?>visibility=""
?? ??? ?>gone:??????? 隱藏 不占空間
?? ??? ?>visible????? 顯示
?? ??? ?>invisible??? 隱藏? 占空間


?? ?>setVisibility()
?? ??? ?>View.GONE
?? ??? ?>View.VISIBLE
?? ??? ?>View.INVISIBLE

6,? AsyncTask注意事項:
?? ?>1,AsyncTask實例只能調用一次
?? ?>2,必須在Ui線程得到AsyncTask對象
?? ?>3,AsyncTask方法 系統自動調用
?? ?>4,數據進行交互(子線程和主線程交互)AsyncTask,否則開啟一個線程就行
?? ?>5,異步任務必須在UI線程啟動



?? ?

?? ?
?? ??? ?



?? ????

轉載于:https://www.cnblogs.com/muyuge/p/6152285.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374002.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374002.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374002.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python函數封裝計算n運算_在Python里面怎么可以運算出999999999**999999999,求思路?...

>>> 999999999 * math.log(999999999, 2) / 8 / 1024 ** 33.480509950621777所以這個數字本身就差不多需要3.5GB內存&#xff0c;考慮到計算過程中需要存儲臨時結果&#xff0c;還需要翻個兩三倍吧而Python中的long可以到多少呢&#xff1a;#define MAX_LONG_DIGITS \…

C++中const關鍵字的使用總結

const是不變的意思&#xff0c;在C程序中&#xff0c;經常用const來限制對一個對象的操作: 1.1 const變量 例如&#xff1a; const int n3; 則這個變量的值不能改變&#xff0c;即不能對變量賦值。 1.2 const參數 出現在函數參數中的const表示在函數體中不能對這個參數做修改…

php封裝redis負載均衡類

$array array( master > array( "redis://127.0.0.1:6379?timeout1", ), slave > array( "redis://127.0.0.1:6479?timeout1", "redis://127.0.0.1:6579?timeout1", ) ); $redis R…

我今天對JavaFX的了解

如果您沒有聽說過&#xff0c;JavaFX 2是Java的新Desktop / web / client框架。 自JavaFX 1以來&#xff0c;它已經進行了相當大的改動&#xff08;坦率地說&#xff0c;效果并不那么令人印象深刻&#xff09;。 自定義腳本語言已經淘汰了&#xff0c;您可以使用標準Java和基于…

怎么解決xp系統不能安裝NET Framework4.0?

.net 4.0安裝不上解決方法&#xff1a; 引用 9 樓 MoreQuestion 的回復: 全部都不行&#xff01;就是用360軟件管家安裝那個就可以了。用了樓主的方法&#xff0c;果然可行啊 1.先安裝wic。 2.用360安裝.net40 本帖最后由 不懂 于 2014-6-6 00:56 編輯Windows Server 2003 如何…

C++內聯(inline)函數

內聯函數 內聯函數是一種特殊類型的函數&#xff0c;內聯函數在定義或聲明時前面加上“inline”關鍵字。比如&#xff1a; inline int max(int a,int b) { return (a>b)?a:b; } 內聯&#xff08;inline&#xff09;是內聯擴展&#xff08;inline expansion&#xff09;的簡…

我的python學習筆記全集_記錄我的Python學習筆記

不想再像以前那樣&#xff0c;什么都從頭開始學習語法、總結語法&#xff0c;這樣反而會過分糾結于語法&#xff0c;耽誤了開發&#xff0c;畢竟語言的主要屬性是工具&#xff0c;次要的屬性是語言本身。所以還是先熟練使用語言去進行開發&#xff0c;等足夠熟悉了&#xff0c;…

HDU 5794:A Simple Chess(Lucas + DP)

題目鏈接&#xff1a;http://acm.split.hdu.edu.cn/showproblem.php?pid5794 題意&#xff1a;讓一個棋子從&#xff08;1,1&#xff09;走到&#xff08;n&#xff0c;m&#xff09;&#xff0c;要求像馬一樣走日字型并只能往右下角走。里面還有r個障礙點不能經過或者到達&am…

php源碼分析之PHPAPI宏的作用

在PHP源碼中&#xff0c;我們經常會看到很多函數前面有個PHPAPI&#xff0c;但這是什么呢&#xff1f; 于是我在php源碼/main/php.h中找到了它的定義 #ifdef PHP_WIN32 # include "tsrm_win32.h" # include "win95nt.h" # ifdef PHP_EXPORTS # …

15分鐘內開始使用Amazon Web Services和全自動資源調配

在等待一個新項目時&#xff0c;我想學習一些有用的東西。 而且由于在許多項目中我們需要評估和測試正在開發的應用程序的性能&#xff0c;而很少有足夠的硬件來生成實際負載&#xff0c;因此我決定學習更多有關按需在云中按需配置虛擬機的知識&#xff0c;即Amazon Web Servic…

解析JVM內存區域組成

在方法&#xff08;代碼塊&#xff09;中定義一個變量時&#xff0c;java就在棧中為這個變量分配JVM內存空間&#xff0c;當超過變量的作用域后&#xff0c;java會自動釋放掉為該變量所分配的JVM內存空間&#xff1b;而在堆中分配的JVM內存由java虛擬機的自動垃圾回收器來管理。…

python打開瀏覽器后帶cookie_Python爬蟲使用瀏覽器的cookies:browsercookie

很多用Python的人可能都寫過網絡爬蟲&#xff0c;自動化獲取網絡數據確實是一件令人愉悅的事情&#xff0c;而Python很好的幫助我們達到這種愉悅。然而&#xff0c;爬蟲經常要碰到各種登錄、驗證的阻撓&#xff0c;讓人灰心喪氣(網站&#xff1a;天天碰到各種各樣的爬蟲抓我們網…

VS插件開發

參考資料: VS插件開發 - 個性化VS IDE編輯器 自己動手編寫一個VS插件&#xff08;一&#xff09; VS Addin插件基本開發入門 VS Addin插件配置、部署 轉載于:https://www.cnblogs.com/wangwangfei/p/5830081.html

使用AspectJ,Javassist和Java Proxy進行代碼注入的實用介紹

靜態地或在運行時將代碼片段注入已編譯的類和方法中的功能可能會很有幫助。 這尤其適用于在沒有源代碼的第三方庫中或在無法使用調試器或探查器的環境中對問題進行故障排除。 代碼注入對于處理涉及整個應用程序的問題&#xff08;例如性能監視&#xff09;也很有用。 以這種方式…

Java中的變量

java類的成員變量有兩種&#xff1a;一種是被static關鍵字修飾的變量&#xff0c;叫類變量或者靜態變量&#xff1b;另一種沒有static修飾&#xff0c;為實例變量。 在語法定義上的區別&#xff1a;靜態變量前要加static關鍵字&#xff0c;而實例變量前則不加。 在程序運行時的…

無限漫游

一、FAT AP架構下&#xff0c;AP設備不做認證時&#xff1a; (1) AP1&#xff0c;AP2正常工作&#xff0c;發送Beacon幀&#xff0c;向STA通告支持的無線服務&#xff1b; (2) STA搜索到AP1的信號&#xff0c;向AP1發Probe Request,請求獲取AP1所提供的無線服務&#xff1b;AP…

uni-app內置地圖軌跡_MIUI11 新增親情守護,支持安全圍欄、運動軌跡功能

點擊右上角關注我們&#xff0c;每天給您帶來最新最潮的科技資訊&#xff0c;讓您足不出戶也知道科技圈大事&#xff01;日前&#xff0c;小米 MIUI 體驗總負責人 MIUI小凡 在微博上為大家預告了 MIUI11 的新特性「親情守護」&#xff0c;并表示「在親情守護中&#xff0c;我們…

:before與:after偽類的應用

1.小三角樣式 .tip{ position:relative; display:inline-block; width:100px; margin:100px; padding:30px 20px; color:#fff; border:1px solid #666; border-radius:5px; background-color:rgba(0,153,51,1);}.tip:before{ content:; posit…

小心重載API方法

重載方法是API設計中的重要概念&#xff0c;尤其是當您的API是流利的API或DSL&#xff08; 特定于域的語言 &#xff09;時。 對于jOOQ就是這種情況&#xff0c;在這種情況下&#xff0c;您經常想使用與完全相同的方法名稱來與庫進行各種交互。 示例&#xff1a;jOOQ條件 pac…

phpcms 下載模型列表頁直接點擊下載

下載模型設置本地下載 列表頁模板直接調用 <article class"prjDown"><p class"prjDownTitle">方案下載</p><nav class"prjDownNav"><ul>{pc:content action"lists" catid"$catid" num"3…