直播app原始碼,定時開關,實現計時器功能
直播app原始碼,定時開關,實現計時器功能
計時器工具類
import android.annotation.SuppressLint; import android.os.Handler; import android.os.Message; import androidx.annotation.NonNull; import java.util.Timer; import java.util.TimerTask; /** * 用於計時,在主執行緒中使用此方法 */ public class ChjTimer { private int time;//設定倒數計時 X 秒 private int interval = 1000;//設定間隔時間 private ChjTimerInter chjTimerInter; //回撥 private Timer timer; // 定時器 private static final int WHAT_REFREH = 0;//重新整理 /** * 建立物件則開始計時 * * @param chjTimerInter 介面回撥 */ public ChjTimer(ChjTimerInter chjTimerInter) { this.chjTimerInter = chjTimerInter; } /** * 建立物件開始計時 * @param interval 間隔時間通知(使用第一個方法,預設1秒鐘重新整理一次) * @param chjTimerInter 介面回撥 */ public ChjTimer(int interval, ChjTimerInter chjTimerInter) { this.chjTimerInter = chjTimerInter; this.interval = interval; } /** * 開始計時 */ public void start(int time) { this.time = time; if (timer == null){ timer = new Timer(); } else { stop(); return; } timer.schedule(new TimerTask() { @Override public void run() { timesss.sendMessage(new Message()); } }, interval); } /** * 終止計時 */ public void stop() { if (timer != null) { timer.cancel(); timer = null; } if (timesss != null) timesss.removeMessages(WHAT_REFREH); if (chjTimerInter != null)chjTimerInter.stop(time); } @SuppressLint("HandlerLeak") private Handler timesss = new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (msg.what != WHAT_REFREH) return; time -= 1; if (chjTimerInter != null) chjTimerInter.second(time); if (time == 0) { if (timer == null) return; timer.cancel(); timer = null; if (chjTimerInter != null) chjTimerInter.expire(); } else if (time > 0) { timer.schedule(new TimerTask() { @Override public void run() { timesss.sendMessage(new Message()); } }, interval); } } }; /** * 介面 */ public interface ChjTimerInter { /** * 間隔時間內回撥 */ void second(int time); /** * 完成回撥 */ void expire(); /** * 終止計時 */ void stop(int time); } }
使用演示
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class MainActivity extends Activity implements View.OnClickListener, ChjTimer.ChjTimerInter { private TextView tiems,timnew; private ChjTimer chjTimer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tiems = findViewById(R.id.time); timnew = findViewById(R.id.timnew); findViewById(R.id.but).setOnClickListener(this); findViewById(R.id.buts).setOnClickListener(this); chjTimer = new ChjTimer(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.but: tiems.setText("10"); timnew.setText("正在計時"); chjTimer.start(10); break; case R.id.buts: chjTimer.stop(); break; } } @Override public void second(int time) { tiems.setText(time + ""); } @Override public void expire() { timnew.setText("計時完成"); } @Override public void stop(int time) { timnew.setText("計時終止" + time); } }
頁面 佈局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:orientation="vertical" android:layout_gravity="center" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/timnew" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="計時完成" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/time" android:text="0" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/but" android:text="開始" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/buts" android:text="終止" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
以上就是 直播app原始碼,定時開關,實現計時器功能,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2899405/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播系統原始碼,實現倒數計時,定時任務原始碼
- 直播電商原始碼,活動開始時間計時器原始碼
- app直播原始碼,驗證時實現獲取驗證碼並顯示倒數計時的功能APP原始碼
- 直播平臺軟體開發,Android 計時器,定時功能Android
- app直播原始碼如何實現直播間紅包功能APP原始碼
- 直播小程式原始碼,vue實現時間倒數計時原始碼Vue
- 一對一直播原始碼,利用matlab實現程式計時功能原始碼Matlab
- 直播電商原始碼,商品出售倒數計時的定時器效果原始碼定時器
- 遊戲陪玩app原始碼開發,常用的倒數計時功能如何實現?遊戲APP原始碼
- Unity——計時器功能實現Unity
- 開發直播app 軟體時iOS端廣告功能設定APPiOS
- app直播原始碼,收到訊息時出現彈窗APP原始碼
- ScheduledThreadPoolExecutor實現定時器和延時載入功能thread定時器
- 直播app原始碼,map實現購物車選擇功能APP原始碼
- 直播平臺搭建,計時和倒數計時功能的分別實現
- 直播程式原始碼實現直播業務時必不可少的方面原始碼
- 直播網站原始碼,Canvas實現圓形時間倒數計時進度條網站原始碼Canvas
- 【STM32F4】利用定時器實現最基本的定時功能(HAL)定時器
- 教育直播APP系統原始碼,原生開發功能APP原始碼
- 直播平臺原始碼開發,簽到功能的實現原始碼
- 定時器初始化原始碼定時器原始碼
- 直播教學系統原始碼搭建定製影片直播功能完善低延時負載強原始碼負載
- 實現小程直播帶貨app原始碼的紅包傳送功能APP原始碼
- 路由器WiFi定時開關設定教程 路由器WiFi定時開關怎麼設定?路由器WiFi
- 利用定時器實現51微控制器返回上電執行時間功能定時器
- 關於直播賣貨小程式原始碼推流功能的實現原始碼
- 直播APP原始碼系統家族功能開發介紹APP原始碼
- 直播app原始碼,JAVA8 時間格式轉換APP原始碼Java
- 直播系統app原始碼,藉助django 實現顯示圖片功能APP原始碼Django
- 直播系統app原始碼,自定義可以暫停的倒數計時APP原始碼
- 直播app系統原始碼,動態遇到視訊時開始自動播放APP原始碼
- 直播軟體開發,ScheduledExecutorService定時器的使用定時器
- Java Timer原始碼解析(定時器原始碼解析)Java原始碼定時器
- 關於定時器定時器
- 直播電商原始碼,利用Kotlin+RocketMQ 實現延時訊息原始碼KotlinMQ
- Ionic Angular 實現驗證碼倒數計時功能Angular
- app直播原始碼,軟體登入時的背景圖更改APP原始碼
- 影視APP系統原始碼,定製開發功能APP原始碼