1. 程式人生 > >Android四大元件應用系列——使用BroadcastReceiver和Service實現倒計時

Android四大元件應用系列——使用BroadcastReceiver和Service實現倒計時

public class ClockActivity extends Activity {
    private TextView tvClock;
    public static final String CLOCK_ACTION="com.jereh.Clock_Action";
    public static  int TIME=2*60*60*1000;//倒計時2個小時
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_clock);
        tvClock
=(TextView)super.findViewById(R.id.tvClock); regReceiver();//註冊廣播 startService(new Intent(this,ClockService.class));//啟動計時服務 } @Override protected void onDestroy() { super.onDestroy(); super.unregisterReceiver(clockReceiver); TIME=2*60*60*1000; Intent intent
=new Intent(); intent.setAction(ClockService.CLOCK_SERVICE_ACTION); intent.putExtra("method", "stop"); super.sendBroadcast(intent); } private void regReceiver(){ IntentFilter intentFilter=new IntentFilter(); intentFilter.addAction(CLOCK_ACTION);
super.registerReceiver(clockReceiver, intentFilter); } /** *廣播接受者,接受來自ClockService(計時服務)的廣播,ClockService每隔一秒 *鍾發一次廣播 */ private BroadcastReceiver clockReceiver=new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { changeTime();//改變TextView中的顯示時間 } }; //通過傳送廣播,控制計時服務 //繼續計時 public void restart(View view){ Intent intent=new Intent(); intent.setAction(ClockService.CLOCK_SERVICE_ACTION); intent.putExtra("method", "continue"); super.sendBroadcast(intent); } //通過傳送廣播,控制計時服務 //暫停計時 public void pause(View view){ Intent intent=new Intent(); intent.setAction(ClockService.CLOCK_SERVICE_ACTION); intent.putExtra("method","pause"); super.sendBroadcast(intent); } private void changeTime(){ String stime=""; if(TIME==0){ stime="計時結束"; }else{ int hour=TIME/(1000*60*60); int minute=TIME%(1000*60*60)/(60*1000); int second=(TIME%(1000*60*60))%(60*1000)/1000; String shour=""+hour,sminute=""+minute,ssecond=""+second; if(hour<=9){ shour="0"+hour; } if(minute<=9){ sminute="0"+minute; } if (second<=9){ ssecond="0"+second; } stime=shour+":"+sminute+":"+ssecond; } tvClock.setText(stime); } }

相關推薦

Android四大元件應用系列——Activity與Service互動實現APK下載

private Thread downloadThread; private void startDownload(){ downloadThread=new Thread(new Runnable() { @Override public void run

Android四大元件應用系列5——使用AIDL實現跨程序呼叫Service

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan

Android四大元件應用系列——使用BroadcastReceiverService實現倒計時

public class ClockActivity extends Activity { private TextView tvClock; public static final String CLOCK_ACTION="com.jereh.Clock_Action";

Android四大元件應用系列——實現電話攔截電話錄音

public class ListenPhoneService extends Service { private AudioManager mAudioManager; private TelephonyManager tm; public ListenPhoneSe

Android四大元件應用系列——使用ContentProvider實現跨程序通訊

package com.jereh; public class PersonProvider extends ContentProvider { private DbOpenHelper openHelper; private static final UriMatcher

android四大元件啟動流程-BroadcastReceiver啟動流程(基於android 6.0)

廣播在android系統中,使用非常頻繁,可以說是耦合度極低的一種通訊方式。作業系統一方面為了讓任務執行互不干擾,即使某個任務掛了,也不會影響其他的任務,因此才有了程序,但是任務之間通常又是相關的,又需要涉及到程序間的通訊,當然程序間通訊的方式有很多種,管道、訊號、訊息佇

Android四大元件BroadcastReceiver應用詳解

今天我們來講一下Android中BroadcastReceiver的相關知識。 BroadcastReceiver也就是“廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播。 在Android系統中,廣播體現在方方面面,例如當開機完成後系統會產生一條廣播,接收到這條廣播就能實

Android四大元件——BroadcastReceiver(原理篇)

前言 Android四大元件——BroadcastReceiver(基礎篇)裡面介紹了BroadcastReceiver相關的基礎知識,本文將從Android 8.0原始碼來分析一下廣播的註冊和接收原理。 BroadcastReceiver的註冊 Android系統中Broa

android四大元件--使用LocalBroadcast進行應用內資料傳遞

1.區別:本地廣播的傳送和接受,只能在一個程序中。因此在跨程序中的通訊是不能使用的。比如建立了新的程序或者是在不同app之間通訊都是不能使用。 但是在不同的執行緒中是能夠進行傳送和接受資料。因此保證了廣播的安全問題。 2.使用是通過LocalBroadcastManager獲取到獲取例項進行

Android 四大元件Service的啟動、繫結小述

一、概述 學習過Android的小夥伴就不可能不知道Service是什麼,因為Service是Android四大元件之一,聲名赫赫有木有,所以在這裡我就不詳細介紹了,本節主要還是充當筆記的作用,因為我待記性如初戀,記性虐我千百遍。 二、Service的建立 Service是一

Android 四大元件之——Service(一)

一、什麼是服務        服務,是Android四大元件之一, 屬於 計算型元件。   長期後臺執行的沒有介面的元件 ,特點是無使用者介面、在後臺執行、生命週期長 二,什麼時候使用服務?  

Android--四大元件BroadCastReceiver(生命週期、實現原理及使用等)

####1. BroadCastReceiver是什麼? ####2. 廣播型別 ######1). 有序廣播 ######2). 無序廣播 ####3. 生命週期 ####4. 實現原理 ####5. 使用方法 ####6. 許可權問題(安全性) ####7. LocalBroad

Android--四大元件Service

####1. Service是什麼? ####2. 啟動方式 ######1). 差異 ######2). 關聯 ####3. 生命週期 ######1). startService ######2). bindService ####4.本地服務與遠端服務 ####5.Intent

android四大元件(3)(BroadcastReceiver)

一、aandroid的四大元件BroadcastReceiver廣播接收器(用於接收程式所發出的Broadcast Intent),其本生就是一個全域性的監聽器,用於監聽系統全域性的廣播訊息。由於BroadcastReceiver是全域性的監聽器,所以它可以非常方便地實現系統中不同元件之間地通訊。

Android四大元件(2)(Service)

一、Service是android的四大元件,於activity最相似,於activity的區別在於,service一直執行在後臺,它沒有介面,所以絕不可能跑到前臺,一旦service被啟動起來,它就有它自己的額生命週期。service是四大元件,也是需要到androidManifest.xml檔案

Android四大元件-Service

概念: android 四大元件之一,提供在後臺執行的服務,屬於計算型元件。 特點: 在後臺執行,無使用者介面,生命週期長。 啟動方式 startservice: 不與Activity繫結,啟動之後會無限期的執行下去,除非遇到記憶體低情況被回收,需要呼叫stopSer

Android 四大元件Service的建立與啟動小述

一、概述 學習過Android的小夥伴就不可能不知道Service是什麼,因為Service是Android四大元件之一,聲名赫赫有木有,所以在這裡我就不詳細介紹了,本節主要還是充當筆記的作用,因為我待記性如初戀,記性虐我千百遍。 二、Service的建立 建立

Android四大元件Service全面解析(一)

 在小杰的上一篇博文中給大家講了一下Android四大元件之一的Activity,也是最重要的,這一篇文章,給大家講一下Service。 什麼是Service  Service是Android的四大元件之一應用廣泛,它是一個能在後臺進行一個長時間的操作並且不提供使用者介面

Android四大元件service

原文:https://blog.csdn.net/javazejian/article/details/52709857 ,詳細瞭解的童鞋可以看這篇原文,寫的很棒! 1.Service簡單概述   Service(服務)是一個一種可以在後臺執行長時間執行操作而沒有使用者介面

android四大元件service總結

Service通常總是稱之為“後臺服務”,其中“後臺”一詞是相對於前臺而言的,具體是指其本身的執行並不依賴於使用者可視的UI介面,因此,從實際業務需求上來理解,Service的適用場景應該具備以下條件: 1.並不依賴於使用者可視的UI介面(當然,這一條其實也不是絕對的,如前臺Service就