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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Andriod:安卓线程实现页面的自动跳转

發布時間:2025/4/5 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Andriod:安卓线程实现页面的自动跳转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復制一個工程,

比如說現在我們的Mainactivity.java要自動跳轉到下一個頁面怎么辦?

?如果把

//intert去設置要跳轉的頁面
?? ??? ?Intent intent = new Intent(this, SecondActivity.class);
?? ??? ??? ?//跳轉
?? ??? ?startActivity(intent);

扔到上面去,你會發現

?這個程序一運行我們根本就看不到第一個頁面

?你想要它自動跳轉,它的邏輯是很簡單的,加上一個sleep就好了

那么sleep在安卓中是在哪里呢?

他是這個線程這個類,里面的靜態方法? ? Thread.sleep()????

里面是個毫秒,我們來個3秒? ??? ? Thread.sleep(3000);

這面的波浪線是什么?因為他可能產生一個受查異常 ,也就是說線程創建可能會崩潰

錯誤提示:????????Unhandled exception type InterruptedException

?所以要加一個try? catch

?運行一下

什么都看不到,

?三秒之后

?

它確實自動跳轉了,但此之前我們并沒有看見頁面一的數據

原因是啥?

實際上安卓在啟動app的時候有一個主要的UI線程?

而我們這個sleep是在當前線程做出來阻塞的

那UI顯示什么意思呢?他會不斷刷新屏幕界面

你在人家不斷刷新屏幕界面的時候,你做了睡眠一定會出問題的

UI線程一但sleep的話,就會造成我們剛才的效果,你是無法看到第一個頁面的任何字符,因為UI界面被你弄睡眠了

既然要用到這種效果必須? ? ?sleep? ? 但又不能在? ?UI? 下面? ?sleep,你要在新線程里面sleep

新線程里面去sleep.另外啟動一個線程,在3秒后啟動一個新界面。不要在UI線程中sleep
? ? ? ? 那么如何在安卓(Java)中創建線程呢?

?? ?Thread t = new Thread();

這個線程有了,但是我還沒有啟動

Thread t = new Thread();//實例化了一個線程

如何用呢?

?? ?t.start();//啟動線程

那么線程啟動以后,你想讓他干啥


?? ??? ?

??? ?pthread_create();????????啟動一個C語言的線程

里面會有一些傳參

pthread_create(*t1,NULL,(void*)fuc,NULL);

線程的ID號,????????參數,????????會涉及到回調函數

也就是c語言創建線程會去執行????????fuc? ? 這個函數

那Java創建線程,我們并沒有看見所謂的函數

只是????????????????

????????????????????????Thread t = new Thread();//實例化了一個線程

?????????????????????????? ?t.start();//啟動線程

那你啟動線程,你要他干啥?? ? ? ? 不知道

所以說實例化線程,???????????Thread t = new Thread();? ? ? ? 這面需要一個接口

? ?

????????Thread t = new Thread(new Runnable() {
?? ??? ??? ?
?? ??? ??? ?@Override
?? ??? ??? ?public void run() {
?? ??? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ?});

? ?

在這個run 里面添加你的活

try {
?? ??? ??? ?Thread.sleep(3000);
?? ??? ?} catch (InterruptedException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?}

在這個新線程里面延遲三秒

? ?

? ?
?? ??? ??? ??? ??? ?//intert去設置要跳轉的頁面
?? ??? ??? ??? ?Intent intent = new Intent(this, SecondActivity.class);
?? ??? ??? ??? ??? ?//跳轉
?? ??? ??? ??? ?startActivity(intent);

? ??
? ? ?三秒之后再去實現自動的跳轉

??

?this在當前的線程? ? ? ? Thread是不被識別的? ? ? ? this? ? ? ?改成? ? MainActivity.this

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

思路:

先創建一個線程????????Thread t = new Thread

然后線程啟動????????????????t.start();

那線程啟動干呢? 你要在線程的構造方法里面? ?去給他一件事情,Runnable()是一個接口

你要去重寫里面的? ? ?run? ?方法,run方法里面做的就是你真正要干的活

(不要在UI線程中sleep,UI被sleep暫停刷新了)

? ??

? ??

?運行結果

三秒過后?

總結

以上是生活随笔為你收集整理的Andriod:安卓线程实现页面的自动跳转的全部內容,希望文章能夠幫你解決所遇到的問題。

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