最近在做miracast投屏,需要在投屏顯示前,插播幾秒的圖檔廣告。并且可以通過點選完成提前跳轉。
核心點主要在延時跳轉和點選完成提前跳轉。核心代碼如下:
class MainActivity : AppCompatActivity() {
//跳過倒計時提示5秒
private var recLen = 5
private var handler: Handler = Handler()
private var runnable: Runnable? = null
internal var timer = Timer()
internal var task: TimerTask? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
setContentView(R.layout.activity_main)
init()
timer.schedule(task, 0 , 1000)
handler.postDelayed(runnable, 5000)
}
private fun init() {
tv_skip.setOnClickListener{
if (runnable != null) {
handler!!.removeCallbacks(runnable)
}
jump_activity()
}
runnable = object : Runnable {
override fun run() {
// TODO Auto-generated method stub
jump_activity()
}
}
task = object : TimerTask() {
override fun run() {
runOnUiThread {
tv_skip.setText("跳過$recLen")
if (recLen < 1) {
timer.cancel()
tv_skip.setVisibility(View.GONE)//倒計時到0隐藏字型
}
recLen--
}
}
}
}
private fun jump_activity() {
val intentMainActivity = Intent(this, ContentActivity::class.java)
this.startActivity(intentMainActivity)
}
}
效果圖如下:
完成了個例子上傳至github,位址如下:https://github.com/cuibin1991/AdvertiseTest