日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Android客户端多线程实例分析

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android客户端多线程实例分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java中實現多線程主要有兩種方式:繼承Thread類、實現Runnable接口。
Thread類存放于java.lang類庫中,系統默認加載這個包,所以可以直接使用Thread類。

class myThread extends Thread{屬性方法修飾符 run(){ //激活的線程將從run()方法開始執行要執行的代碼塊} 
}new myThread().start();  //在程序中需要執行線程的地方插入此語句,激活線程

在Java中不允許多繼承,一個子類只能有一個父類,但是可以通過實現接口的方式達到多繼承效果。因此,可以實現Runnable接口來創建線程。

class MyThread implements Runnnable(){屬性方法public void run(){要執行的代碼塊}
}MyThread myThread = new MyThread();  //實例化一個MyThread類型對象
new Thread(myThread).start();  //使用Thread類的start方法激活此線程

Runnable接口實現的線程類需要調用Thread類中的start()方法是由于Runnable接口中只有一個run()方法,沒有start()方法。

舉一個多線程的例子

public class ThreadDemo extends Thread {public static void main(String[] args) {// TODO 自動生成的方法存根ThreadDemo t1 = new ThreadDemo();t1.start(); try {Thread.sleep(10);} catch (InterruptedException e1) {// TODO 自動生成的 catch 塊e1.printStackTrace();}for(int i=0;i<3;++i){t1.Msg(); //Msg()中調用了currentThread(),//調用Msg()方法間接調用了currentThread()//要注意的是,調用者是main線程,并非子線程實例t1try{Thread.sleep(1000);}catch(InterruptedException e){e.printStackTrace();}}}public void run(){for(int i = 0; i<3; ++i){Msg();try{Thread.sleep(1000); //休眠線程1s}catch(InterruptedException e){e.printStackTrace();}}}public void Msg(){Thread t = Thread.currentThread(); //currentThread()是靜態方法,//調用時要跟在類名后而非對象名,//該方法返回執行該方法的線程實例   String name = t.getName(); //獲取線程名System.out.println("name = "+name);}
}

運行結果:

在之前《MPD解析模塊在Android中的實現》一文中,對耗時的MPD下載、解析過程創建了子線程,因為子線程不能對UI進行操作,于是調用showResponse(final String response)方法,將子線程的解析結構結果以string對象傳遞給UI線程,之后經過TextView顯示出來。

 private void showResponse(final String response) {//子線程中不允許進行UI操作,因此利用showResponse()方法切換到主線程更新runOnUiThread(new Runnable() {@Overridepublic void run() {responseText.setText(response);//創建一個TextView顯示傳入字符串}});}--------------------- 
原文:https://blog.csdn.net/qq_34041083/article/details/85103846 

在Android中Java多線程還有一個常見的用處,設置啟動頁。如果想在已有MainActivity基礎上增加一個圖片主題的啟動頁,可以利用多線程延遲MainActivity的啟動,并在其啟動之前調用布局的圖片。

public class DisplayActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_display);new Thread(new Runnable() {@Overridepublic void run() {try{Thread.sleep(3000); //MainAvtivity的啟動時間延遲3秒}catch(InterruptedException e){e.printStackTrace();}runOnUiThread(new Runnable() {@Overridepublic void run() {//跳轉至 MainActivityIntent intent = new Intent(DisplayActivity.this, MainActivity.class);  startActivity(intent);//結束當前的 ActivityDisplayActivity.this.finish();}});}}).start();}
}

即在MainActivity之前增加DisplayActivity,DisplayActivity的layout文件中僅布局一張圖片,這樣即可實現Android App啟動頁(廣告)設置。

總結

以上是生活随笔為你收集整理的Android客户端多线程实例分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。