闹钟

一些Manager类整理

坚强是说给别人听的谎言 提交于 2020-12-06 05:29:57
电话TelephonyManager: <receiver android:name=".PhoneReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"/> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission> public class PhoneReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL))

Andriod学习 第十二周

 ̄綄美尐妖づ 提交于 2020-04-05 20:53:45
一、Service 首先我们来了解一下线程的相关概念: 线程 1 相关概念 程序:为了完成特定任务,用某种语言编写的一组指令集合(一组静态代码) 进程:运行中的程序,系统调度与资源分配的一个独立单位,操作系统会 为每个进程分配一段内存空间。程序的依次动态执行,经历代码的加载,执行, 执行完毕的完整过程。 线程:比进程更小的执行单元,每个进程可能有多条线程,线程需要放在一个 进程中才能执行,线程由程序负责管理,而进程则由系统进行调度。 多线程的理解:并行执行多个条指令,将CPU时间片按照调度算法分配给各个 线程,实际上是分时执行的,只是这个切换的时间很短,用户感觉到"同时"而已。 2 线程的生命周期 3 创建线程的三种方式 继承Thread类 实现Runnable接口 实现Callable接口 如果使用的是2创建的线程的话,可以直接这样启动: new Thread(myThread).start(); 当更多的时候我们喜欢使用匿名类,即下面这种写法: new Thread(new Runnable(){ public void run(); }).start(); Service与Thread 两者并没有太大的关系,但容易混淆。 Thread是线程,程序执行的最小单元,分配CPU的基本单位, 而Service则是Android提供一个允许长时间留驻后台的一个组件,最常见的

第一阶段成果建议

ε祈祈猫儿з 提交于 2020-03-18 10:43:51
以下是其余各组对我们组的意见: 2 :没有标记,到时间链接闹钟提醒, 3 : 4 :页面字体不清楚,没有日期的提醒,感觉这个APP日期的提示还是比较重要的,希望像微信的功能看齐,信息可以直接发布到群组,优化一下页面。 5 :身为生活日历应该添加一些假期提醒以及工作人和双休日安排。可以添加第三方登录,使用户登录更加简单方便。应用了悬浮安妮,感觉把悬浮按钮放在顶部的的效果会更好,同时信息的显示不够清晰,绿色的背景颜色让人感觉有些眼花。 6 :数据库功能尚够不完善,希望有所改进。 7 :页面总体布局需要改进,功能未细化,APP日期的提示,页面方面需要进行优化 8 :提醒的功能太简洁,界面不美观,界面的颜色不好,希望可以优化界面。 9 :界面设计绿色和蓝色配比需要提升,界面风格不太统一;模拟机展示输入功能不太完善,其真机调试情况不明;可以仿照闹钟,设置事件提醒 10 :功能有点儿单一,还有问题就是主要是界面不美观 11 :同类软件太多,建议有所创新,可以添加上课表功能,空教室功能,记录事件和时间以后能够提前提醒,进入软件以后我可以根据表单填写一周的计划安排(上课时间,运动规划等),该软件可以获取消息通知功能,到时通知。 12 :界面过于简单,功能也有些单一 13 :界面设计确实有问题,功能有些许的单一,单机版本交互体验有限 14 :登录时可将密码加密。可将其连接至服务器

UNIX环境高级编程--10. 信号

ぐ巨炮叔叔 提交于 2020-02-24 23:19:48
第十章 信号 信号是软中断,提供了一种处理异步事件的方法。例如,终端用户键入终端键,会通过信号机制停止一个进程, 或及早终止管道中的下一个程序。 每个信号都有一个名字,SIG开头。例如: SIGABRT:夭折信号,当进程调用abort函数时产生。 SIGALRM:闹钟信号,由alarm函数设定时器超时后将产生此信号。 当信号出现时,可以告诉内核按下列三种方式之一进行处理: (1)忽略此信号。butSIGKILL和SIGSTOP不能忽略。他们向内核和超级用户提供了使进程终止或停止的可靠方法。另外,硬件异常产生的信号也不能忽略。 (2)捕捉信号。 (3)执行系统默认动作。 函数signal: UNIX系统信号机制最简单的接口是signal函数。 void (*signal (int signo, void (*func)(int))) (int); 返回值:成功,返回以前的信号处理配置;出错,返回SIG_ERR。 signo信号名(SIGABRT等); func取值可以是: 常量SIG_IGN 表示忽略此信号 常量SIG_DFL 表示接到此信号后动作是系统默认动作 函数地址 信号发生时,调用该函数。 函数kill和raise: kill和raise函数用来发送信号。 kill函数将信号发送给进程或进程组。raise函数则允许进程向自身发送信号。 调用 raise(signo);

Android基础——闹钟

女生的网名这么多〃 提交于 2020-01-30 23:27:25
有两个活动:一个是Main,用来设定闹钟,另一个是闹钟到点提示的活动Alarm Main布局文件 <?xml version="1.0" encoding="utf-8"?> <TimePicker xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TimePicker android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap

软工实践第八次作业

孤者浪人 提交于 2020-01-24 10:42:20
本次作业博客 团队信息 队名:起床一起肝活队 原组长: 白晨曦(101) 原组员: 李麒 (123) 陈德斌(104) 何裕捷(214) 黄培鑫(217) 王焕仁(233) 林志华(128) 乐忠豪(121) 蔡子阳(102) 临时组长: 何裕捷(214) 组员: 李麒(123) 陈德斌(104) 黄培鑫(217) 王焕仁(233) 高裕翔(212) 胡青元(081600410) 蔡子阳(102) alpha版本 模块序号 模块名 模块具体内容 1 登陆注册模块 用户的登陆与注册 2 个人信息模块 用户的个人信息 3 累计反馈模块 用户世界树的更新成长以及实时天气温度等信息 4 计划模块 以日历形式显示用户制定的计划,分个人和团队 5 闹钟模块 设置关联闹钟,优先级以及提醒方式 成员分工明细以及TODO-list 负责人 分工明细 TODO-list 白晨曦 1.规划项目进程;2.组织会议、分配任务;3.负责UI设计;4.参与文档拟写 完成各个界面的UI设计稿 陈德斌 辅助项目原型的逻辑功能设计 协同同何裕捷完成项目原型逻辑功能设计 林志华 1.负责前端的开发;2.辅助pm进行项目规划 个人信息模块前端开发 何裕捷 负责项目原型的逻辑功能设计 完成项目原型逻辑功能设计 黄培鑫 负责前端的设计、开发 完成登陆注册模块前端开发 蔡子阳 负责网络接口 完成网络接口的设计与开发 李麒 1

软工实践-第八次作业

不羁的心 提交于 2020-01-24 10:41:43
本次作业博客 团队信息 队名:起床一起肝活队 原组长: 白晨曦(101) 原组员: 李麒 (123) 陈德斌(104) 何裕捷(214) 黄培鑫(217) 王焕仁(233) 林志华(128) 乐忠豪(121) 蔡子阳(102) 临时组长: 何裕捷(214) 组员: 李麒(123) 陈德斌(104) 黄培鑫(217) 王焕仁(233) 高裕翔(212) 胡青元(081600410) 蔡子阳(102) alpha版本 模块序号 模块名 模块具体内容 1 登陆注册模块 用户的登陆与注册 2 个人信息模块 用户的个人信息 3 累计反馈模块 用户世界树的更新成长以及实时天气温度等信息 4 计划模块 以日历形式显示用户制定的计划,分个人和团队 5 闹钟模块 设置关联闹钟,优先级以及提醒方式 成员分工明细以及TODO-list 负责人 分工明细 TODO-list 白晨曦 1.规划项目进程;2.组织会议、分配任务;3.负责UI设计;4.参与文档拟写 完成各个界面的UI设计稿 陈德斌 辅助项目原型的逻辑功能设计 协同同何裕捷完成项目原型逻辑功能设计 林志华 1.负责前端的开发;2.辅助pm进行项目规划 个人信息模块前端开发 何裕捷 负责项目原型的逻辑功能设计 完成项目原型逻辑功能设计 黄培鑫 负责前端的设计、开发 完成登陆注册模块前端开发 蔡子阳 负责网络接口 完成网络接口的设计与开发 李麒 1

Android闹钟设置的解决方案

﹥>﹥吖頭↗ 提交于 2019-12-22 05:51:25
Android设置闹钟并不像IOS那样这么简单,做过Android设置闹钟的开发者都知道里面的坑有多深。下面记录一下,我解决Android闹钟设置的解决方案。 主要问题 API19开始AlarmManager的机制修改。 应用程序被Kill掉后,设置的闹钟不响。 6.0以上进入Doze模式会使JobScheduler停止工作。 手机设置重启后,闹钟失效问题。 API19以上AlarmManager机制的修改 API19之前AlarmManager提供了三个设置闹钟的方法,由于业务需求闹钟只需要一次性,所以采用set(int type,long startTime,PendingIntent pi);这个方法。 从API 19开始,AlarmManager的机制都是非准确传递,操作系统将会转换闹钟,来最小化唤醒和电池使用。 由于之前的程序,没有对API19以上的闹钟设置做处理,导致在4.4以上的手机设置闹钟无响应(应用程序没有被杀死的情况也没有闹钟)。 因些,设置闹钟需要根据API的版本进行分别处理设置。代码如下: 1 AlarmManager am = (AlarmManager) getActivity() 2 .getSystemService(Context.ALARM_SERVICE); 3 if (Build.VERSION.SDK_INT >= Build

Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

删除回忆录丶 提交于 2019-12-22 05:51:13
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2、AlarmManager的常用方法有三个: (1) set(int type,long startTime,PendingIntent pi); 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作。 (2) setRepeating(int type,long startTime,long intervalTime,PendingIntent pi); 该方法用于设置重复闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟首次执行时间,第三个参数表示闹钟两次执行的间隔时间,第三个参数表示闹钟响应动作。 (3) setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi); 该方法也用于设置重复闹钟,与第二个方法相似,不过其两个闹钟执行的间隔时间不是固定的而已。 3、三个方法各个参数详悉: (1) int type: 闹钟的类型,常用的有5个值:AlarmManager.ELAPSED_REALTIME

在android下实现定制闹钟

纵饮孤独 提交于 2019-12-22 05:51:03
闹钟是我们生活中常用的工具。在android系统中提供了强大的闹钟接口,并且使用起来也非常简单。AlarmManager是android提供的闹铃管理接口。我们想创建一个闹铃程序就需要通过它来完成。那么接下来就看一下创建闹钟的过程: 1. 获取AlarmManager对象 AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 在android中获取系统服务的方式就是getSystemService(ServiceCode)。 2. 为AlarmManager建立一个receiver类,这个类是用来接收广播的闹铃事件的,我们也可以看作是闹铃的处理程序吧。 public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "This the time", Toast.LENGTH_LONG).show(); } } 这个类需要继承自BroadcastReceiver类,这里有两种方式来接收Intent的广播事件,一是动态注册一个Receiver