-
Android项目小结---闹铃备忘录小开发知识点(附有:源码下载)
2012-08-22 15:00:50一、闹铃功能介绍: 1、为每条备忘添加闹铃 2、备忘内容和闹铃信息存在SQL中 3、可删除每天记录和闹铃或者删除所有 4、到点闹铃启动,包括锁屏时和重开机 5、在桌面的创建一个widget类似便签那样的东西显示记录一、闹铃功能介绍:
1、为每条备忘添加闹铃
2、备忘内容和闹铃信息存在SQL中
3、可删除每天记录和闹铃或者删除所有
4、到点闹铃启动,包括锁屏时和重开机
5、在桌面的创建一个widget类似便签那样的东西显示记录
二、看下效果图:
三、关于SQL部分不再细写,可查看Android应用开发一栏:
添加闹铃和备忘:
1、设置日期:
dateBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mCalendar = Calendar.getInstance(); // TODO Auto-generated method stub new DatePickerDialog(EditTime.this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mAlarmCalendar.set(Calendar.YEAR, year); mAlarmCalendar.set(Calendar.MONTH, monthOfYear); mAlarmCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); EditTime.this.year = year; EditTime.this.month = monthOfYear; EditTime.this.day = dayOfMonth; dateBtn.setText(year + "年" + (month + 1) + "月" + day + "日"); System.out.println(year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日"); } }, year, month, day).show(); } });
2、设置时间:timeBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mCalendar = Calendar.getInstance(); new TimePickerDialog(EditTime.this, new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { mAlarmCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); mAlarmCalendar.set(Calendar.MINUTE, minute); mAlarmCalendar.set(Calendar.SECOND, 0); mAlarmCalendar.set(Calendar.MILLISECOND, 0); EditTime.this.hour = hourOfDay; EditTime.this.minute = minute; timeBtn.setText(hour + "时" + minute + "分"); System.out.println(hourOfDay+"时"+minute+"分"); } }, hour, minute, false).show(); } });
3、广播闹铃:setBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //写进数据库 addData(); /* 获取闹钟管理的实例 */ mAlarm = (AlarmManager) getSystemService(Service.ALARM_SERVICE); Intent intent = new Intent(EditTime.this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast( EditTime.this, AlarmIndex, intent, 0);// 第二个参数为区别不同闹铃的唯一标识 /* 设置闹钟 */ mAlarm.set(AlarmManager.RTC_WAKEUP, mAlarmCalendar.getTimeInMillis(), pendingIntent); finish(); } });
4、广播接收BroadcastReceiver:
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Intent i = new Intent(context, Alarm.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//这一句很重要,不然会出错 context.startActivity(i); } }
记得注册:
<receiver android:name=".AlarmReceiver" android:process=":remote" />
5、重启之后重写闹铃,BootReceiver:
同样需要注册:public class BootReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String action = intent.getAction(); if(action.equals(Intent.ACTION_BOOT_COMPLETED)){ Intent i = new Intent(context, BootAlarm.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//这一句很重要,不然会出错 context.startActivity(i); } } }
<receiver android:name="BootReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
6、开始重写:
dbHelper = new DatabaseHelper(BootAlarm.this, "idea.sql"); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("user", null, null, null, null, null, null); btAlarmCalendar = Calendar.getInstance(); while (cursor.moveToNext()) { btAlarmCalendar = Calendar.getInstance(); System.out.println("cursor.moveToNext()-->cursor.getInt(0)-->" + cursor.getInt(0)); time = cursor.getString(cursor.getColumnIndex("mtime")); year = time.substring(0, time.indexOf("年")); myear = Integer.valueOf(year).intValue(); month = time.substring(time.indexOf("年")+1, time.indexOf("月")); mmonth = Integer.valueOf(month).intValue()-1; day = time.substring(time.indexOf("月")+1, time.indexOf("日")); mday = Integer.valueOf(day).intValue(); hour = time.substring(time.indexOf("日")+1, time.indexOf("时")); mhour = Integer.valueOf(hour).intValue(); minute = time.substring(time.indexOf("时")+1, time.indexOf("分")); mminute = Integer.valueOf(minute).intValue(); System.out.println(myear + "年" + mmonth + "月" + mday + "日" + mhour + "时" + mminute); btAlarmCalendar.set(Calendar.YEAR, myear); btAlarmCalendar.set(Calendar.MONTH, mmonth); btAlarmCalendar.set(Calendar.DAY_OF_MONTH, mday); btAlarmCalendar.set(Calendar.HOUR_OF_DAY, mhour); btAlarmCalendar.set(Calendar.MINUTE, mminute); btAlarmCalendar.set(Calendar.SECOND, 0); btAlarmCalendar.set(Calendar.MILLISECOND, 0); mAlarm = (AlarmManager) getSystemService(Service.ALARM_SERVICE); intent = new Intent(BootAlarm.this, AlarmReceiver.class); pendingIntent= PendingIntent.getBroadcast( BootAlarm.this, cursor.getInt(0), intent, 0);// 第二个参数为区别不同闹铃的唯一标识 /* 设置闹钟 */ mAlarm.set(AlarmManager.RTC_WAKEUP, btAlarmCalendar.getTimeInMillis(), pendingIntent); }
这里有个很需要注意的:intent = new Intent(BootAlarm.this, AlarmReceiver.class); pendingIntent= PendingIntent.getBroadcast( BootAlarm.this, cursor.getInt(0), intent, 0);
若是PendingIntent.getBroadcas,则intent必须为启动的是BroadcastReceiver,不然重写不会成功的。
7、到点闹铃响,这是由AlarmReceiver(继承BroadcastReceiver)启动的:
dbHelper = new DatabaseHelper(Alarm.this, "ideal.sql"); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("user", null, "_id=?", new String[] { NoteActivity.Alarming_index + "" }, null, null, null); if (cursor.moveToFirst()) { mtime = cursor.getString(cursor.getColumnIndex("mtime")); mtext = cursor.getString(cursor.getColumnIndex("mtext")); } db.close(); addData();//写进历史记录表中 deleteData(NoteActivity.Alarming_index);//删除原来记录 new AlertDialog.Builder(Alarm.this) .setIcon(R.drawable.bell) .setTitle("It's time to do something.") .setMessage(mtext) .setPositiveButton("Done", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { deleteData(NoteActivity.Alarming_index);//再次删除确认 //关闭闹铃声 Intent intentSV = new Intent(Alarm.this, MyService.class); stopService(intentSV); Alarm.this.finish(); } }).show();
锁屏时也启动闹铃:
8、置于闹铃音乐可以写一个Service,这个可查看Android学习笔记一栏//下面是为了在锁屏时也能启动闹铃 getWindow().addFlags( WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags( WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
9、点击listview可查看记录内容,长按可进行记录的删除,这里不再多写。10、由于是闹铃,所以必须每一秒中进行更新一下倒计时,这个可以查看Android学习笔记一栏。
11、附:让title每秒显示时间:
public class TimeThread extends Thread { @Override public void run() { do { try { Thread.sleep(1000); Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } while (true); } } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: currentTime = new Date(); // long sysTime = System.currentTimeMillis(); CharSequence sysTimeStr = DateFormat.format( "yyyy年MM月dd日hh:mm:ss", currentTime.getTime()); EditTime.this.setTitle(sysTimeStr); break; default: break; } } };
------------------(修改版)----------------------
12、是否为记录添加闹铃:
isAlarmBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub isAlarmNum++; if (isAlarmNum % 2 == 0) { isAlarmBtn.setBackgroundResource(R.drawable.checknull); isAlarm = 0; } else { isAlarmBtn.setBackgroundResource(R.drawable.check); isAlarm = 1; } } });
13、阻止设置时间小于当前时间:currentTime = new Date(); if (beginTime.getTime() < currentTime.getTime()) { Toast.makeText(EditTime.this, "设置时间不能小于当前时间!", Toast.LENGTH_SHORT).show(); }
14、添加widget:AppWidget.java
public class AppWidget extends AppWidgetProvider { private DatabaseHelper dbHelper; String[] desk_text; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // TODO Auto-generated method stub super.onUpdate(context, appWidgetManager, appWidgetIds); //读取数据库中的记录 dbHelper = new DatabaseHelper(context, "ideal.sql"); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("user", null, null, null, null, null, null); int desk_num=0; //桌面的便签只显示6条记录 desk_text = new String[6]; while(cursor.moveToNext()){ if(desk_num == 6){ break; } String temp_text = cursor.getString(cursor.getColumnIndex("mtext")); //控制每条记录显示的长度 if(temp_text.length()>7){ temp_text=temp_text.substring(0, 7)+"..."; } desk_text[desk_num]=temp_text; System.out.println("desk_text[desk_num]"+desk_text[desk_num]); desk_num++; } db.close(); final int Num = appWidgetIds.length; for (int i = 0; i < Num; i++) { int[] mAppWidgetId = appWidgetIds; RemoteViews mRemoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); mRemoteViews.setTextViewText(R.id.desktop_text, array_to_string(desk_text)); Intent clickIntent = new Intent(context, NoteActivity.class); PendingIntent pdIntent = PendingIntent.getActivity(context, 0, clickIntent, 0); mRemoteViews.setOnClickPendingIntent(R.id.widget_layout, pdIntent); appWidgetManager.updateAppWidget(mAppWidgetId, mRemoteViews); } } //onReceive方法用来接收广播,以便更新桌面的便签 @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub super.onReceive(context, intent); if(intent.getAction().equals("com.ideal.note.widget")){ dbHelper = new DatabaseHelper(context, "ideal.sql"); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("user", null, null, null, null, null, null); int desk_num=0; desk_text = new String[6]; while(cursor.moveToNext()){ if(desk_num == 6){ break; } String temp_text = cursor.getString(cursor.getColumnIndex("mtext")); if(temp_text.length()>7){ temp_text=temp_text.substring(0, 7)+"..."; } desk_text[desk_num]=temp_text; System.out.println("desk_text[desk_num]"+desk_text[desk_num]); desk_num++; } db.close(); } RemoteViews mRemoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); mRemoteViews.setTextViewText(R.id.desktop_text, array_to_string(desk_text)); AppWidgetManager.getInstance(context).updateAppWidget(new ComponentName(context, AppWidget.class), mRemoteViews); } //数组转化为字符显示 public String array_to_string(String[] array){ String temp_str = ""; for(int i=0;i<array.length;i++){ if(array[i]==null){ break; }else { temp_str = temp_str+"\n* "+array[i]; } } return temp_str; } }
在其他修改了数据库数据的Activity或者其他地方发送一条广播来让AppWidget执行,如在NoteActivity.java中添加:Intent mWidgetIntent = new Intent(); mWidgetIntent.setAction("com.ideal.note.widget"); NoteActivity.this.sendBroadcast(mWidgetIntent);
另,还需在AndroidManifest.xml中添加:<receiver android:name=".AppWidget"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/> <action android:name="com.ideal.note.widget"/> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info"/> </receiver>
附源码下载地址:http://download.csdn.net/detail/moruna/7969393
有疑问的可加入这个qq群聊一起讨论:431922622(奋斗的Android青年 )
-
Android 闹铃定时器实现
2016-12-19 21:44:17此demo实现了一个闹铃,用AlarmManager对象设定闹铃,时间到了后,系统会...注意:此demo在原生Android系统上没问题,但在国内大多数定制机上,如果关闭后台,闹铃一般不会触发 ╮(╯_╰)╭demo下载地址:http://dow此demo实现了一个闹铃,用AlarmManager对象设定闹铃,时间到了后,系统会调用设定好的BroadcastReceiver、Service或者Activity。
AlarmManager可以设置以下五种类型(demo中使用的第二种):
注意:此demo在原生Android系统上没问题,但在国内大多数定制机上,如果关闭后台,闹铃一般不会触发 ╮(╯_╰)╭
demo下载地址:http://download.csdn.net/detail/youmingyu/9715802
MainAvtivity:
package fk.androiddemo_030; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { Button setAlarmBut,cancelAlarmBut; EditText keyEdit,timeEdit; int alarmKey, alarmTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); keyEdit=(EditText)findViewById(R.id.keyEdit); timeEdit=(EditText)findViewById(R.id.timeEdit); setAlarmBut = (Button) findViewById(R.id.setAlarmBut); setAlarmBut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { alarmKey=Integer.parseInt(keyEdit.getText().toString().trim()); alarmTime=Integer.parseInt(timeEdit.getText().toString().trim()); alarmTime=alarmTime*1000;//换成毫秒 Intent intent = new Intent(MainActivity.this, AlarmService.class); //Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); intent.putExtra("alarmKey",alarmKey); //PendingIntent还可以用getActivity()直接启动Activity PendingIntent sender = PendingIntent.getService(MainActivity.this, alarmKey, intent, 0); //PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this, alarmKey, intent, 0); long firstTime = SystemClock.elapsedRealtime(); // 开机之后到现在的运行时间(包括睡眠时间) firstTime += alarmTime; // 进行闹铃注册 AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); //manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 3000, sender);//重复闹钟 manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, sender); Toast.makeText(MainActivity.this, "设置"+alarmKey+"号闹铃", Toast.LENGTH_LONG).show(); //MainActivity.this.finish(); } }); cancelAlarmBut = (Button) findViewById(R.id.cancelAlarmBut); cancelAlarmBut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { alarmKey=Integer.parseInt(keyEdit.getText().toString().trim()); Intent intent = new Intent(MainActivity.this, AlarmService.class); //Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); PendingIntent sender = PendingIntent.getService(MainActivity.this, alarmKey, intent, 0); //PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this, alarmKey, intent, 0); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(sender);// 取消闹铃 Toast.makeText(MainActivity.this, "取消"+alarmKey+"号闹铃", Toast.LENGTH_LONG).show(); //MainActivity.this.finish(); } }); } }
AlarmService:
package fk.androiddemo_030; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class AlarmService extends Service { public AlarmService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { int alarmKey=intent.getIntExtra("alarmKey",-1); Toast.makeText(ContextUtil.getInstance(), alarmKey+"号闹铃响了, 可以做点事情了~~AlarmService", Toast.LENGTH_LONG).show(); return super.onStartCommand(intent, flags, startId); } }
AlarmReceiver:
package fk.androiddemo_030; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class AlarmReceiver extends BroadcastReceiver { public AlarmReceiver() {} @Override public void onReceive(Context context, Intent intent) { // TODO: This method is called when the BroadcastReceiver is receiving int alarmKey=intent.getIntExtra("alarmKey",-1); Toast.makeText(context, alarmKey+"号闹铃响了, 可以做点事情了~~AlarmReceiver", Toast.LENGTH_LONG).show(); } }
运行截图:
-
好用的记事本_手机上下载哪个带有闹铃记事本的便签软件好用?
2020-11-27 22:21:52便签提醒 除了手机自带的记事本软件外,还可以在手机上安装第三方的记事本便签软件设置闹铃提醒,那么手机上下载哪个带有闹铃记事本的便签软件好用呢?小编今天给大家推荐一款叫敬业签的记事本便签软件。 敬业签是...随着生活和工作节奏的不断加快,每天大家要处理的事情越来越多,稍有不留意就很容易忘记重要的事情。为了避免忘记重要的事情,很多人的做法会在手机上设置一个闹钟,到点能准时提醒,但是使用闹钟设置提醒时,不能以文字的形式展示要提醒的内容,因此很多人又开始找手机上使用的带有闹钟提醒的记事本软件。
现如今随着智能手机的发展,几乎每一个品牌手机上都有自带的记事本软件,有些会以“便签”、“备忘录”命名,功能大同小异,都可用来记录每日待办事项,且可以设定闹铃提醒,能在固定的时间内提醒大家想要做的事情。
便签提醒
除了手机自带的记事本软件外,还可以在手机上安装第三方的记事本便签软件设置闹铃提醒,那么手机上下载哪个带有闹铃记事本的便签软件好用呢?小编今天给大家推荐一款叫敬业签的记事本便签软件。
敬业签是一款集提醒、记事和备忘于一体的便签软件,可以记录日常待办事项、行程约会等信息,且在记录内容时可以逐条进行梳理,每一条待办内容都支持设置闹铃提醒,敬业便签可设置按照公历或者农历日期进行单次定时提醒,还可设置按天/周/月/季/年周期循环提醒,还支持设定重要事项间隔时间提醒和到期延时提醒。
手机便签待办事项
通过查看便签上记录的待办事项可以理清每一项工作日程的轻重缓急,做好各项事务的管理工作。另外,敬业便签还支持绑定微信提醒、开启语音电话提醒、短信提醒、钉钉提醒、和邮箱提醒,多方位提醒大家按时完成待办事项,在便签软件的闹铃提醒下,大家可以提高做事的积极性,同时避免忘记重要的事情。
-
Android 实现闹铃效果
2018-10-17 11:18:16最近项目里有个功能,需要实现闹铃效果。 网上查了一大堆资料,都说要使用AlarmManager,AlarmManager使用起来倒是很简单。但App 一旦被杀了,就不起作用了…… 然后又有好多可以让app存活的文章,奈何能在多款...最近项目里有个功能,需要实现闹铃效果。
网上查了一大堆资料,都说要使用AlarmManager,AlarmManager使用起来倒是很简单。但App 一旦被杀了,就不起作用了……
然后又有好多可以让app存活的文章,奈何能在多款手机上,多种版本上都起作用的几乎没有……反正我在git上下载了几个demo都不行
在尝试了一整天还是不能达到效果之后,果断放弃了AlarmManager。然后继续在网上查询资料,终于发现了“日历事件”
通过向手机自带的日历中添加提醒事件,完美的实现了闹铃的效果!再也不用担心app在后台放久了,或者app被杀掉了这些让人头疼的问题了!
-
完整Android记事本,备忘录(包含闹铃提醒功能)源码
2011-07-21 07:13:39完整Android记事本,备忘录(包含闹铃提醒功能)源码,只要导入到Eclipse中即可运行。(闹钟功能可能不完整,请酌情下载) -
Clock Quartus II 开发的多功能数字时钟,有计时、调 闹铃、警报等 Other systems 其他 274万源代码下载-...
2021-01-30 06:53:09文件名称: Clock下载 收藏√ [5 4 3 2 1]开发工具: Others文件大小: 530 KB上传时间: 2017-04-20下载次数: 0提 供 者: 墨离非详细说明:Quartus II 开发的多功能数字时钟,有计时、调时、闹铃、警报等功能-Quartus ... -
EA&UML日拱一卒-微信小程序实战:位置闹铃 (11)-稍微聪明一点
2018-03-05 20:37:46问题的提出小程序使用wx.playVoice播放音频时,需要从网上下载播放的对象文件,但是每次播放都要下载的话,就太傻了。好在小程序提供了保存文件的功能。思路准备一个url到缓存文件的映射,当小程序成功的下载播放... -
EA&UML日拱一卒-微信小程序实战:位置闹铃 (12)-这还不算完
2018-03-06 20:09:55上一篇文章实现了音频文件缓存功能,做到了一次下载多次播放。但是还有一个问题:这个功能是作为app的一个功能而存在,如果想在其他场合使用就必须是代码层次的拷贝和粘贴。不好。我们继续改进,将这部分功能做成一... -
开心小闹钟_开心小闹钟下载
2009-05-08 20:25:00下载之家 → 地图导航 → 桌面工具 → 闹铃时钟 → 开心小闹钟 2.8 beta3软件大小:3.38 MB 软件语言:简体中文 软件授权:共享版 软件类别:桌面工具 - 闹铃时钟 应用平台:WinNT/2000/XP/2003 上一软件:飞雪桌面... -
5款精致android项目源代码下载
2011-12-06 12:55:38(源代码下载) 2、安卓闹钟 安卓闹钟 -- 一款非常好用的闹钟软件,可根据你的喜好,添加你所喜欢的闹铃铃声。 (源代码下载) 3、管道连接 管道连接 -- 超级管道连接:通过旋转区块连接端子到服务器。触摸旋转区块, 或... -
郭天祥十天学会C51单片机视频教程下载地址,国内公认最好教程
2014-12-11 11:26:45综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信) 下载地址:http://pan.baidu.com/s/1qWBdHOK 第十一讲:用DS12C887时钟芯片设计一... -
EasyAndroid 包含各种工具类的集合,会不定期更新,欢迎贡献code 使用方法: 2.0.0以后,放弃了support库,请使用AndroidX ... 然后,在自己的Application中调用Utils.init(this);进行初始化 添加混淆: ...
-
android 跨应用程序广播发送接受
2016-05-18 18:09:25例如,开机,闹铃,电池电量过低等等。但还可以自定义广播,用来两个应用程序的通知。 曾经写的开机自启动的博客(通过接受系统广播):Android 开机自启动示例程序 这篇博客源码下载:点击 1、实现界面 ... -
值得收藏的Web前端绚丽的时间显示组件(补)
2014-08-12 16:41:414.jQuery带闹铃数字时钟 能在支持 FireFox、Chrome、Safari、傲游、搜狗、360浏览器。 源码下载/ 在线演示 5. SVG时钟走时图标特效 源码下载/ 在线演示 6. jQuery带闹铃数字时钟 ... -
iOS 自定义闹钟
2019-11-16 22:49:03从服务器获取到一组时间,都设置成闹铃,默认是每天循环不可修改,同时可以自定义闹铃,可选择周几循环。可以设置打开关闭或者删除。 #####一. 固定闹钟,每天循环。 很简单,将需要设置成闹钟的时间放入一个数组中... -
iOS--使用本地推送实现自定义闹钟
2018-01-26 02:12:27从服务器获取到一组时间,都设置成闹铃,默认是每天循环不可修改,同时可以自定义闹铃,可选择周几循环。可以设置打开关闭或者删除。 #####一. 固定闹钟,每天循环。 很简单,将需要设置成闹钟的时间放入一个数组中... -
推荐一款专业制作手机铃声的音乐剪辑器?
2020-10-14 15:19:45制作手机铃声应该如何选择专业音乐剪辑器?音乐是日常生活必不可少的,很多人都有编辑歌曲的习惯, 将喜欢的歌曲或者音乐文件,高潮部分制作成手机铃声或闹铃,它...工具下载地址:http://www.qvevideo.com/audio 音乐. -
QVE音乐剪辑器制作手机铃声的方法
2020-12-08 17:22:09音乐是日常生活必不可少的,很多人都有编辑歌曲的习惯, 将喜欢的歌曲或者音乐文件,高潮部分制作成手机铃声或闹铃,它彰显的个人独特的个性。怎样把音乐喜欢的部分剪切出来保存呢?那么需要选择一款专业,操作简单... -
电脑流量监控
2009-12-13 11:19:00电脑流量监控软件 因为爱看电影,使用下载工具又担心数据永无休止的上传,所以有了这个软件,他可以在下载完毕或者上传数据量远远大于下载数据量的时候自动关闭下载工具,呵护硬盘的健康。 软件具备实时的监视网络... -
Determining and Monitoring the Connectivity StatusAndroid 电源管理专题之获取和监测网络连接状态
2012-09-20 10:22:23设定周期性的闹铃提醒和后台服务,最常见的用途是定期更新应用程序的数据,从互联网上下载资源,缓存数据或者执行长时间的下载任务。但是如果设备当前没有连接到网络,或者是网络状况不稳定,连接太慢,不能正常完成... -
Android课程提醒案例
2021-01-13 12:22:18该课程提醒app实现了冬季、夏季课程提醒,闹铃设置等功能,适合新手学习。 开发语言: java 技术框架: mvc 开发工具: AndroidStudio2.2,新手最好使用此版本搭建,不同版本修改配置比较繁琐 数据库 sqlite ... -
分享10款激发灵感的最新HTML5/CSS3应用
2019-08-23 17:12:36在线演示 源码下载 2、HTML5环形音乐播放器 播放器外观非常酷 之前我们分享过几款HTML5音乐播放器和视频播放器,像这款HTML5卡带式古典播放器、HTML5视频播放器Video.Js非常不错。今天我要分享一款外观更酷的HTML5... -
miniftp项目总结(七)
2020-04-17 21:47:49通过安装一个闹铃信号来实现。控制连接是否断开还得考虑此时是否有数据连接建立(即正在实现上传、下载、显示列表的功能) 查看信号命令: kill -l 数据连接的空闲断开 上传、下载、显示列表的时候,数据连接必须... -
用DatePicker和TimePicker自定义一个时间拾取器
2015-09-22 00:41:41很多情况下我们都需要这样一种简单的效果:点击一个Textview或者是EditText等可以弹出一个选择时间的对话窗口,选好后再将时间设置为前者的文本,这就是所谓的时间拾取器,这种效果在设置闹铃时我们时常见到,接下来... -
开源代码收集分享
2015-09-01 09:59:00开源分享(点击标题下载源码): 1.Xabber客户端 ...5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11.简洁天气 12.高仿开心网 13.百度推聊 ...
-
黑龙江电信移动联通IPTV节目源
-
【C++】Visual Studio教程(三) - 项目和解决方案
-
204. 计数质数(算法思维系列)
-
阿里全国脱贫攻坚先进-万祥军:谋定中国农民丰收节交易会
-
牛牛量化策略交易
-
干涉显微镜测量表面粗糙度条纹的自动处理
-
具有U形栅极和累积层的超低比导通电阻沟槽LDMOS
-
0Day --- 简单说明和防范
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
Liunx 优化思路与实操步骤
-
MySQL 高可用(DRBD + heartbeat)
-
centos安装jmeter
-
工程制图 AutoCAD 2012 从二维到三维
-
【布道者】Linux极速入门
-
我就想从手机传个图到电脑,有那么难吗?
-
Simulation and experimental research on polymer fiber mode selection polished coupler
-
Realization of absolute negative refraction index by a photonic crystal using anisotropic dielectric material
-
Windows系统管理
-
用微服务spring cloud架构打造物联网云平台
-
项目管理工具与方法