編輯:關於Android編程
1.首先 android 一個程序中 的activity 都是一個線程,service和activity也是一個線程
2.在activity 中啟動一個子線程,當前activity finish destroy掉 子線也會運行的。
3.在service裡的線程 與activity很類似 service即使停止了 線程也在運行(要先停止服務 再把最近使用的進程殺掉 線程會停止 ,如果直接殺掉進程 android會再次自動啟動這個service的 此時即使再停止service服務 線程也會一直運行了除非關機)
activity 中啟動一個子線程
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lout);
System.out.println("當前線程 執行了====SecondActivity====="+Thread.currentThread().getId());
new Thread(new Runnable() {
@Override
public void run() {
while(true){
System.out.println("當前線程 執行了==22222=="+Thread.currentThread().getId());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
@Override
protected void onDestroy() {
System.out.println("當前線程 執行了======結束====="+Thread.currentThread().getId());
super.onDestroy();
}
}activity finish 子線程依舊可以運行,即使程序退出了子線程也在運行 (除非在任務管理器裡 把最近使用的進程殺掉)
service 中啟動一個子線程
public class TestService extends Service{
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
System.out.println("當前線程 執行了====TestService0000====="+Thread.currentThread().getId());
new Thread(new Runnable() {
@Override
public void run() {
while(true){
System.out.println("當前線程 執行了==22222=="+Thread.currentThread().getId());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
} } }
}).start();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
System.out.println("當前線程 執行了=====TestService=結束====="+Thread.currentThread().getId());
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}以上3條是在 android 4.4.2測試的情況,其他版本沒有試過。如有不對的地方請批評指正!
請注意子線程的生命周期 不要activity結束了 子線程才處理完 返回結果給UI就會有問題,也可以為耗時或者需要長時間運行的情況提供一點思路
安卓(Android)ViewPager+TabLayout實現圖片輪播效果
起因: 最近在做一個新聞APP,看到現在的新聞客戶端頂端都有個熱點新聞輪播。思路:viewpager可以用來顯示圖片,並且可以提供滑動,15年(不知記錯沒)新出的TabL
Android開發中遇到端口號占用問題解決方法
Android開發的時候經常遇到端口號被占用的問題,經常使程序無法運行,很煩人。我總結了一個很好的方法,非常實用。方法如下: (1):方法1:第一步:1:netstat
Android 開發第七彈:簡易時鐘(秒表)
本文承接,Android 開發第五彈:簡易時鐘(鬧鐘) 和 Android 開發第六彈:簡易時鐘(計時器),這一部分是關於秒表的。布局同樣是新建一個類(StopWatch
Android-Launcher開發之ShortCut(1)
以下源碼來自Launcher2.3的例子 1.默認每個應用的主Activity都會自帶 ,表示該應用安裝到Launcher時點擊打開該Activity 2.