您的位置:首页 > 娱乐 > 明星 > python搭建网站_东莞建设网住房保障专栏_网站 seo_请简述网络营销的特点

python搭建网站_东莞建设网住房保障专栏_网站 seo_请简述网络营销的特点

2024/12/21 20:13:16 来源:https://blog.csdn.net/weixin_57057153/article/details/142303986  浏览:    关键词:python搭建网站_东莞建设网住房保障专栏_网站 seo_请简述网络营销的特点
python搭建网站_东莞建设网住房保障专栏_网站 seo_请简述网络营销的特点

文章目录

    • CountDownTimer基本使用
    • 增加基础BaseActivity
    • 增加固定活动

在Android中,CountDownTimer 是一个用于计时的类,它允许你在指定的时间段内执行某些操作。通常用于倒计时功能,例如显示一个倒计时进度条或者在倒计时结束后执行某个动作。
要使用 CountDownTimer,你需要创建一个继承自 CountDownTimer 的匿名内部类或单独的类,并重写其两个方法:onTick() 和 onFinish()。onTick() 方法会在每个计时周期被调用,通常用于更新 UI 以显示剩余时间。onFinish() 方法会在计时结束时被调用,用于执行倒计时结束后的操作。
以下是如何使用 CountDownTimer 的一个简单示例:

CountDownTimer基本使用

创建一个 CountDownTimer 对象并设置总时间(以毫秒为单位)和时间间隔(以毫秒为单位)。
重写 onTick 方法,该方法将在每个时间间隔触发。
重写 onFinish 方法,该方法将在倒计时结束时触发。

import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private TextView textView;private Button startButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = findViewById(R.id.textView);startButton = findViewById(R.id.startButton);startButton.setOnClickListener(v -> startCountDown());}private void startCountDown() {new CountDownTimer(10000, 1000) { // 10秒倒计时,每秒更新一次@Overridepublic void onTick(long millisUntilFinished) {textView.setText("剩余时间: " + millisUntilFinished / 1000 + "秒");}@Overridepublic void onFinish() {textView.setText("倒计时结束!");// 在这里可以启动其他Activity或执行其他操作}}.start();}
}

下面我们就来使用CountDownTimer完成任务:

增加基础BaseActivity

增加基础BaseActivity 使得其他的页面都可以继承该类,即可同时拥有跳转到固定活动的功能。

package com.ui.base;import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import com.jianguo.retention.BaseApplication;
import ADActivity;/*** @author lipeiyong*/
public abstract class BaseActivity extends AppCompatActivity {protected String TAG = getClass().getSimpleName();protected Context mContext;protected InputMethodManager manager;public BaseApplication mApplication;public CountDownTimer countDownTimer;private final long advTime = 30 * 1000;@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {switch (ev.getAction()) {case MotionEvent.ACTION_DOWN:if (countDownTimer != null) {countDownTimer.cancel();}break;case MotionEvent.ACTION_UP:startAD();break;}return super.dispatchTouchEvent(ev);}@Overrideprotected void onPause() {super.onPause();if(countDownTimer!= null){countDownTimer.cancel();}}private void startAD() {if (countDownTimer == null) {countDownTimer = new CountDownTimer(advTime, 1000) {@Overridepublic void onTick(long millisUntilFinished) {// 更新 UI 显示剩余时间}@Overridepublic void onFinish() {startActivity(new Intent(getApplicationContext(), ADActivity.class));}};countDownTimer.start();} else {countDownTimer.start();}}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Subscribe(threadMode = ThreadMode.MAIN)public void onLogOutEvent(LogoutEvent event) {Log.d("BaseActivity", "退出登录,关闭所有activity");finish();}@Overrideprotected void onResume() {super.onResume();startAD();}@Overrideprotected void onDestroy() {super.onDestroy();if (countDownTimer != null) {countDownTimer.cancel();}}
}

以上代码中,在dispatchTouchEvent里处理触摸事件,实现广告倒计时功能。在onResume()方法中启动广告计时器,在onDestroy()方法中取消广告计时器。这两个方法分别处理活动的恢复和销毁过程,确保资源得到正确释放和清理。
startAD的方法,用于启动一个倒计时器。当倒计时结束时,会跳转到名为ADActivity的活动。如果倒计时器已经存在,则直接重新启动倒计时器;如果不存在,则创建一个新的倒计时器并启动。

增加固定活动

public class ADActivity extends AppCompatActivity implements View.OnClickListener {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_ad);ImageView imageView = findViewById(R.id.lock_gif);imageView.setOnClickListener(this);Glide.with(this).load(R.raw.lock).into(imageView);}@Overridepublic void onClick(View v) {if (v.getId() == R.id.lock_gif) {this.finish();}}
}

ADActivity 不要继承BaseActivity哦。
activity_ad.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical"><ImageViewandroid:id="@+id/lock_gif"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
</LinearLayout>

最后就是AndroidManifest.xml在增加活动:
<activity android:name=".ui.activity.ADActivity" />
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com