Android 闹钟_嵌入式linux实现闹钟-程序员宅基地

技术标签: Android  

需求:新的平台要实现关机启动,所以要了解一下闹钟的机制

这个链接写得比较详细(我只是动手试了试,毕竟应用不是专长):http://www.cnblogs.com/mengdd/p/3819806.html

1、AlarmManager 这个是闹钟的核心 

里面有void set函数,void setInexactRepeating函数 通过这些函数来设置 


源码链接:http://download.csdn.net/detail/weiqifa0/9173341

设置闹钟的代码:

package com.example.helloworld;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;

public class AlarmTest extends Activity
{
    Button setTime;
    AlarmManager aManager;
    Calendar currentTime = Calendar.getInstance();

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

        setTime = (Button) findViewById(R.id.setTime);

        aManager = (AlarmManager) getSystemService(
            Service.ALARM_SERVICE);

        setTime.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View source)
            {
                Calendar currentTime = Calendar.getInstance();
                new TimePickerDialog(AlarmTest.this, 0,
                    new TimePickerDialog.OnTimeSetListener()
                    {
                        @Override
                        public void onTimeSet(TimePicker tp,
                            int hourOfDay, int minute)
                        {
                            Intent intent = new Intent(AlarmTest.this,
                                AlarmActivity.class);
                            PendingIntent pi = PendingIntent.getActivity(
                                AlarmTest.this, 0, intent, 0);
                            Calendar c = Calendar.getInstance();
                            c.set(Calendar.HOUR, hourOfDay);
                            c.set(Calendar.MINUTE, minute);
                            aManager.set(AlarmManager.RTC_WAKEUP,
                                c.getTimeInMillis(), pi);  //这个是代码的核心部分    
                    
                            Toast.makeText(AlarmTest.this, "设置闹钟成功"
                                , Toast.LENGTH_SHORT).show();
                        }
                    }, currentTime.get(Calendar.HOUR_OF_DAY), currentTime
                        .get(Calendar.MINUTE), false).show();
            }
        });
    }
}


到时后就会去启动另一个Activity ,核心代码如下:

package com.example.helloworld;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.widget.Toast;
 
/**
 * Description:
 * <br/>��վ: <a href="http://www.crazyit.org">���Java����</a>
 * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee [email protected]
 * @version  1.0
 */
public class AlarmActivity extends Activity
{
    MediaPlayer alarmMusic;
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        Toast.makeText(AlarmActivity.this, "设置闹钟时间到"
                , Toast.LENGTH_SHORT).show();
        new AlertDialog.Builder(AlarmActivity.this).setTitle("����")
            .setMessage("1,2")
            .setPositiveButton("OK", new OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialog, int which)
                {
                    // ֹͣ����
                    //alarmMusic.stop();
                    // �����Activity   //疯狂android里面显示的声音 简单的用法我把声音去掉了
                    AlarmActivity.this.finish();
                }
            }).show();
    }
}


AndroidMainfest.xml的代码,每一个Activity都要在里面注册,我第一次写的时候没有注册,结果启动不成功

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloworld"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"        
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.helloworld.AlarmTest"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".AlarmActivity"/> //刚开始忘记了这行代码
    </application>

</manifest>


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weiqifa0/article/details/49071361

智能推荐

泰克Tektronix THDP0100高压差分探头-程序员宅基地

文章浏览阅读45次。泰克THDP0100高压差分探头Tektronix提供了广泛的高压探测解决方案,使用户能够安全、准确地进行浮动测量。高达6000 V的差速器(DC+PK AC)多2300 V通用(RMS)功率变换器设计与使用。安全高压探头解决方案。

使用uiautomator2自动化测试app(三)------实战篇_uiautomator2创建虚拟机-程序员宅基地

文章浏览阅读1.4k次。这里我主要会介绍怎么自动的化操控模拟器和一些其它的测试.1. 博主使用的是雷电模拟器,其它模拟器不适用此方法雷电模拟器接口:http://www.ldmnq.com/bbs/thread-30-1-1.html这里面是介绍了雷电模拟器调试接口的一些命令,需动手在cmd上先行操作!2. 新建一个.py文件,开始编写脚本这里主要实现了:2.1 创建模拟器2.2 修..._uiautomator2创建虚拟机

microk8s的registry私有镜像库

【代码】microk8s的registry私有镜像库。

开源项目,毕业设计_本科毕业设计拿别人的开源代码修改-程序员宅基地

文章浏览阅读1.5w次,点赞35次,收藏385次。自己在网上找的开源项目,比较好分享给大家热门开源项目(包含小四轴、智能手环、光立方、智能车、防丢器等项目)号外!号外!(搞四轴,有这套就足够了!)科研级别的小四轴STM32F4芯片支持WIFI且android手机控制自适应控制就是牛掰!该飞机面向有科研和强烈学习意向的小伙伴们使用,如果只是想玩的话你肯定不会喜欢这套四轴的,主要设计思想是提供一个高性能的控制和姿态算法验证平台,因此..._本科毕业设计拿别人的开源代码修改

Java快速开发框架_若依——Ruoyi添加自己的业务模块_ruoyi java17-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏26次。QQ 1274510382Wechat JNZ_aming商业联盟 QQ群538250800技术搞事 QQ群599020441解决方案 QQ群152889761加入我们 QQ群649347320共享学习 QQ群674240731纪年科技aming网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/安全项目:态势感.._ruoyi java17

随便推点

macbook历代_苹果历代MacBook笔记本简要回顾-程序员宅基地

文章浏览阅读4.3k次。2006年5月份的时候,苹果悄然取消了12英寸的PowerBook和12/14英寸的iBook机型,取而代之的是13.3英寸的MacBook。作为苹果从PowerPC处理器向Intel迁移的最后一步,该机拥有有黑/白两种颜色。随后,该公司又推出了15和17英寸的MacBook Pro机型。最近,苹果公司更是推出了只有一个USB-C接口的12英寸MacBook。不过本文的主要目的,还是带大家回顾一下..._macbook9.1是哪年的

用maven命令将jar包导入本地仓库_mavend导入jar包命令-程序员宅基地

文章浏览阅读2.8k次。1、将jar包放在D盘根目录下D:\ojdbc6.jar2、 _mavend导入jar包命令

常量与十六进制数0x7f或0x3f做&(与)运算含义-程序员宅基地

文章浏览阅读2.5w次,点赞13次,收藏31次。做个复习。十六进制数 [0~10 A~F]0x7f对应的二进制数及十进制数为:0111 1111 = 2^7 = 1280x3f对应的二进制数及十进制数为:0011 1111 = 2^6 = 640x7f与常量做与运算实质是保留常量(转换为二进制形式)的后7位数,既取值区间为[0,128]比如,0x7f &amp; 256 0111 1111 -------- 1..._0x7f

Python爬虫绕过登录的小技巧_python 爬虫 跳过会员限制-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏17次。前言很多时候我们做 Python 爬虫时或者自动化测试时需要用到 selenium 库,我们经常会卡在登录的时候,登录验证码是最头疼的事情,特别是如今的文字验证码和图形验证码。文字和图形验证码还加了干扰线,本文就来讲讲怎么绕过登录页面。登录页面的验证,比如以下的图形验证码。还有我们基本都看过的 12306 的图形验证码。绕过登录方法绕过登录基本有两种方..._python 爬虫 跳过会员限制

安装 GMP、NTL、CTMalloc ,编译 OpenFHE_openfhe安装-程序员宅基地

文章浏览阅读565次。首先安装 GMP、NTL、CTMalloc 等等很有用的三方库,然后编译 OpenFHE 工具包。_openfhe安装

外包干了2个月,技术退步明显。。。。。

​先说一下自己的情况,本科生,17年通过校招进入武汉某软件公司,干了接近3年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了3年的功能测试,已经让我变得不思进取,谈了1年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,冲击下大厂。​