Android 久坐提醒:完整代码实现及详解
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); } }}
代码解析:
- 导入必要的类: 代码中导入了
AlertDialog、Handler、Runnable、Vibrator等类,用于实现对话框、定时任务和震动功能。2. 创建定时任务: 使用Handler和Runnable创建一个定时任务,每隔一段时间 (例如 30 分钟) 执行一次showReminderDialog()方法。3. 显示提醒对话框:showReminderDialog()方法创建一个AlertDialog,提醒用户起身活动。对话框设置为不可取消,并在用户点击“确定”按钮或取消对话框后重新启动定时任务。4. 震动提醒:vibrate()方法使用Vibrator类实现震动提醒功能。
运行应用
完成以上步骤后,运行应用。应用启动后,会在设定的时间间隔后弹出提醒对话框并震动,提醒用户休息。
扩展功能
你可以根据自己的需求对应用进行扩展,例如:
- 自定义提醒时间间隔* 添加更多提醒方式,例如声音提醒* 记录用户的久坐时间
希望这篇教程能够帮助你理解如何使用 Android Studio 创建一个简单的久坐提醒应用。
原文地址: https://www.cveoy.top/t/topic/Qqe 著作权归作者所有。请勿转载和采集!