Android 久坐提醒:完整代码实现及详解

久坐对健康的影响越来越受到关注,本文将教你如何使用 Android Studio 创建一个简单的久坐提醒应用。该应用会在用户坐下来一段时间后,通过弹出对话框和震动的方式提醒用户起身活动。

1. 创建 Android 项目

在 Android Studio 中创建一个新的项目,选择 Empty Activity 作为模板。

2. 添加权限

AndroidManifest.xml 文件中添加震动权限:xml<manifest ...> ...

3. 设计布局文件

本示例中,我们不需要特殊的布局,因此 activity_main.xml 文件可以保留默认内容。

4. 编写 MainActivity.java 代码

MainActivity.java 文件中添加以下代码:javaimport android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.os.Build;import android.os.Bundle;import android.os.Handler;import android.os.Vibrator;import android.view.WindowManager;import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private Handler handler;    private Runnable runnable;    private AlertDialog alertDialog;    private Vibrator vibrator;    private static final long REMINDER_INTERVAL = 30 * 60 * 1000; // 提醒间隔,单位:毫秒

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);

    // 初始化组件        handler = new Handler();        vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

    // 创建提醒任务        runnable = new Runnable() {            @Override            public void run() {                showReminderDialog();            }        };

    // 启动提醒任务        startReminderTask();    }

@Override    protected void onDestroy() {        super.onDestroy();        // 移除提醒任务        handler.removeCallbacks(runnable);    }

private void startReminderTask() {        // 延迟指定时间后执行提醒任务        handler.postDelayed(runnable, REMINDER_INTERVAL);    }

private void showReminderDialog() {        // 创建提醒对话框        AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setTitle('久坐提醒');        builder.setMessage('您已经久坐较长时间了,请起身活动一下!');        builder.setPositiveButton('确定', new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                // 用户点击确定按钮后,重新启动提醒任务                startReminderTask();            }        });        builder.setCancelable(false);        alertDialog = builder.create();

    // 设置对话框类型为系统级对话框,使其在屏幕上方弹出        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {            alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);        } else {            alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);        }

    // 设置对话框取消监听,当用户取消对话框时,重新启动提醒任务        alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {            @Override            public void onCancel(DialogInterface dialog) {                startReminderTask();            }        });

    // 弹出对话框        alertDialog.show();

    // 震动提醒        vibrate();    }

private void vibrate() {        // 判断设备是否支持震动        if (vibrator.hasVibrator()) {            // 震动1秒            vibrator.vibrate(1000);        }    }}

代码解析:

  1. 导入必要的类: 代码中导入了 AlertDialogHandlerRunnableVibrator 等类,用于实现对话框、定时任务和震动功能。2. 创建定时任务: 使用 HandlerRunnable 创建一个定时任务,每隔一段时间 (例如 30 分钟) 执行一次 showReminderDialog() 方法。3. 显示提醒对话框: showReminderDialog() 方法创建一个 AlertDialog,提醒用户起身活动。对话框设置为不可取消,并在用户点击“确定”按钮或取消对话框后重新启动定时任务。4. 震动提醒: vibrate() 方法使用 Vibrator 类实现震动提醒功能。

运行应用

完成以上步骤后,运行应用。应用启动后,会在设定的时间间隔后弹出提醒对话框并震动,提醒用户休息。

扩展功能

你可以根据自己的需求对应用进行扩展,例如:

  • 自定义提醒时间间隔* 添加更多提醒方式,例如声音提醒* 记录用户的久坐时间

希望这篇教程能够帮助你理解如何使用 Android Studio 创建一个简单的久坐提醒应用。

Android 久坐提醒:完整代码实现及详解

原文地址: https://www.cveoy.top/t/topic/Qqe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录