`

简单闹钟程序

 
阅读更多
这个应用实现了简单的闹钟功能,关闭程序的状态中也可以进行闹钟的提醒.
遗留了一个问题:
如果我通过应用本身关闭程序,是可以实现我上述所说的功能,但是如果我在手机进程管理中实现应用程序的关闭操作,这个提醒就不起作用了,我很疑惑的是,我通过应用程序本身关闭了后,在进程中也是查看不到这个应用了的.所以哪位知道的帮留个言指点下,谢谢!!!!

ClockDemo.java:
package com.example.clock;

import java.util.Calendar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TimePicker;

public class ClockDemo extends Activity {

	private Button mSet;
	Calendar mCalendar = Calendar.getInstance();

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ObjectPool.mAlarmHelper = new AlarmHelper(this);
		mSet = (Button) findViewById(R.id.mSet);
		setListener();
	}

	public void setListener() {
		mSet.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				mCalendar.setTimeInMillis(System.currentTimeMillis());
				int mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
				int mMinute = mCalendar.get(Calendar.MINUTE);
				new TimePickerDialog(ClockDemo.this,
						new TimePickerDialog.OnTimeSetListener() {
							public void onTimeSet(TimePicker view,
									int hourOfDay, int minute) {
								mCalendar.setTimeInMillis(System
										.currentTimeMillis());
								mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
								mCalendar.set(Calendar.MINUTE, minute);
								mCalendar.set(Calendar.SECOND, 0);
								mCalendar.set(Calendar.MILLISECOND, 0);
								ObjectPool.mAlarmHelper.openAlarm(32, "ddd",
										"ffff", mCalendar.getTimeInMillis());
							}
						}, mHour, mMinute, true).show();
			}
		});
	}
	
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			showBackDialog();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
	
	/** Give the tip when exit the application. */
	public void showBackDialog() {
		final AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("提示")
				.setIcon(R.drawable.icon)
				.setMessage("是否退出?")
				.setPositiveButton("sure",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
									int which) {
								System.exit(0);
								android.os.Process
										.killProcess(android.os.Process
												.myPid());

								dialog.dismiss();
							}
						})
				.setNegativeButton("cancel",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
									int which) {
								dialog.dismiss();
							}
						});
		AlertDialog ad = builder.create();
		ad.show();
	}

}


AlarmHelper.java:
package com.example.clock;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;

public class AlarmHelper {

	private Context c;
	private AlarmManager mAlarmManager;

	public AlarmHelper(Context c) {
		this.c = c;
		mAlarmManager = (AlarmManager) c
				.getSystemService(Context.ALARM_SERVICE);
	}

	public void openAlarm(int id, String title, String content, long time) {
		Intent intent = new Intent();
		intent.putExtra("_id", id);
		intent.putExtra("title", title);
		intent.putExtra("content", content);
		intent.setClass(c, CallAlarm.class);
		PendingIntent pi = PendingIntent.getBroadcast(c, id, intent,
				PendingIntent.FLAG_UPDATE_CURRENT);
		mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, pi);
	}

	public void closeAlarm(int id, String title, String content) {
		Intent intent = new Intent();
		intent.putExtra("_id", id);
		intent.putExtra("title", title);
		intent.putExtra("content", content);
		intent.setClass(c, CallAlarm.class);
		PendingIntent pi = PendingIntent.getBroadcast(c, id, intent, 0);
		mAlarmManager.cancel(pi);
	}
}



CallAlarm.java:
package com.example.clock;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class CallAlarm extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		intent.setClass(context, AlarmAlert.class);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(intent);
	}
}



AlarmAlert.java:
package com.example.clock;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;

public class AlarmAlert extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		new AlertDialog.Builder(AlarmAlert.this)
				.setIcon(R.drawable.clock)
				.setTitle("ddd")
				.setMessage("fff")
				.setPositiveButton("ddd",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
									int whichButton) {
								System.exit(0);
								android.os.Process
										.killProcess(android.os.Process
												.myPid());
							}
						}).show();
	}

}



ObjectPool.java:

public class ObjectPool {


	/** The alarm object. */
	public static AlarmHelper mAlarmHelper;

}


main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<DigitalClock android:id="@+id/dClock"
		android:layout_width="wrap_content" android:layout_height="wrap_content"
		android:textSize="40sp" android:textColor="@drawable/blue" />
	<Button android:id="@+id/mSet" android:layout_width="100dp"
		android:layout_height="wrap_content" android:text="@string/str_button1"
		android:textColor="@drawable/red" android:textSize="18sp" />
</LinearLayout>


最后贴个配置文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.example.clock" android:versionCode="1"
	android:versionName="1.0">
	<uses-sdk android:minSdkVersion="7" />
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name=".ClockDemo" android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<receiver android:name=".CallAlarm" />
		<activity android:name=".AlarmAlert" android:label="@string/app_name" />
	</application>
</manifest>

看了那么多,估计某些人又嫌烦了,我只贴上代码的目的是希望大家能看代码,而不是电脑上下了一个又一个的源文件,只知道用而不关心其中的技术点,这样就不能举一番三了,O(∩_∩)O哈哈~
为了不同的同学,我还是贴上源文件吧在.....
分享到:
评论

相关推荐

    简易闹钟程序_读写配置文件

    在IT领域,开发一个“简易闹钟程序_读写配置文件”涉及到许多核心知识点,主要集中在配置文件的读写操作上。配置文件是程序中用于存储用户设置、参数或者应用程序状态的重要工具,使得用户可以自定义软件的行为或...

    c# 简易闹钟程序 附源代码下载

    【C#简易闹钟程序详解】 C#是一种广泛使用的面向对象的编程语言,由微软公司开发,主要用于构建Windows平台的应用程序。在这个“简易闹钟程序”中,我们可以通过C#来实现一个基本的时间提醒功能,这对于初学者来说...

    Android简单闹钟程序

    在Android开发中,创建一个简单的闹钟程序是一个常见的任务,涉及到Android系统服务、BroadcastReceiver以及AlarmManager等核心组件。下面将详细解释如何实现一个类似上述的`ClockDemo`程序。 首先,我们需要创建一...

    C# 简单闹钟程序,带窗口震动

    这是我在学习Timer控件的时候写的一个简单闹钟程序,采用Timer控件来进行闹钟时间提示,利用xml来存储闹钟列表,程序上限制可以设置最大50个闹钟,时间到点后,会在屏幕正中央震动显示一个闹钟窗口,VS2008下编译通过

    闹钟程序,c语言,定时提醒

    【标题】:“闹钟程序,c语言,定时提醒”揭示了这个项目的核心是使用C语言编写的一个简单闹钟程序,其主要功能是提供定时提醒服务。C语言是一种基础且广泛使用的编程语言,常用于系统级编程和开发各种软件,包括...

    基于Python实现的简单闹钟程序设计源码

    该项目为基于Python语言的简单闹钟程序设计源码,总共有32个文件,其中包含16个Python源代码文件、5个文本描述文件、4个XML配置文件、3个YAML配置文件、2个Git忽略文件以及1个数据库文件和1个IntelliJ IDEA项目配置...

    原生JS实现简单闹钟程序

    在本文中,我们将深入探讨如何使用原生JavaScript实现一个简单的闹钟程序,让电脑成为您的贴心睡眠伴侣。这个闹钟程序允许用户设置特定的闹钟时间,并在指定时间到达时发出提醒,确保您不会错过任何重要的时刻。 ...

    一个C#小闹钟程序源码

    在本项目中,我们讨论的是一个使用C#编程语言编写的简单小闹钟程序。C#是一种面向对象的、类型安全的编程语言,由微软公司开发,主要用于Windows平台的应用程序开发,尤其是.NET框架下的应用程序。这个小闹钟程序是...

    C#闹钟程序

    在本文中,我们将深入探讨如何使用C#编程语言创建一个简易闹钟程序。这个程序能够显示当前系统时间,并且能够设定未来的闹钟提醒,显示距离闹钟触发的时间。C#是一种广泛应用于桌面应用开发、游戏开发以及Web服务的...

    安卓闹钟小程序

    【安卓闹钟小程序】是一个基于安卓平台的小应用程序,它的主要功能是提供定时提醒服务。用户可以设置特定的时间,当时间到达时,程序会发出提示,提醒用户某个事件的到来或者完成某项任务。这个小程序虽然能够运行,...

    用C语言完成地闹钟程序

    《C语言实现闹钟程序》 在C语言编程中,创建一个闹钟程序涉及到时间管理和用户交互。闹钟程序的基本功能包括设置提醒时间、显示当前时间以及在指定时间触发提醒。这里我们将探讨如何利用C语言来实现这些功能。 1. ...

    C#使用timer实现的简单闹钟程序

    本文实例讲述了C#使用timer实现的简单闹钟程序。分享给大家供大家参考。具体如下: 当我在电脑上工作,我经常会被一些东西吸引,比如某宝,结果三个小时过去了我都完全没有注意到。所以我通过C#做了一个简单闹钟程序...

    刚刚做的一个简易的闹钟程序

    这个简易的闹钟程序是一个基础的计算机应用,主要用于设置提醒时间,帮助用户在指定的时间得到通知。在IT领域,创建这样的程序涉及到多个知识点,包括编程语言、时间处理、用户交互和事件驱动编程。 首先,编程语言...

    自制闹钟程序-包括vb源程序

    标题中的“自制闹钟程序-包括vb源程序”揭示了我们正在讨论的是一个使用Visual Basic(VB)编程语言开发的个人应用,它具备设定闹钟的功能。VB是Microsoft开发的一种面向对象的编程语言,常用于创建Windows桌面应用...

    微信小程序Demo-闹钟应用-附完整源代码.rar

    微信小程序Demo-闹钟应用-附完整源代码.rar 资源介绍 本资源是一个基于微信小程序开发的闹钟应用示例,包含了完整的源代码,方便用户进行二次开发和定制。该闹钟应用具有简洁的界面设计和实用的功能,可以满足用户...

    闹钟--一个简单的闹钟小程序

    【描述】:“一个简单的闹钟程序。主要逻辑是映射ontimer()函数,设置的临时变量时间与系统时间相同,响闹铃” 这里提到的`ontimer()`函数是许多编程语言中用于实现定时任务的常见机制。当程序调用`ontimer()`时...

    带详细注释的单片机闹钟程序

    标题所指的知识点:单片机闹钟程序 描述知识点:该程序为单片机开发的闹钟程序,含有详细注释。 在深入理解单片机闹钟程序之前,我们需要了解一些基础知识。单片机(Microcontroller Unit, MCU)是一种集成电路芯片...

    android简单闹钟小程序

    在Android平台上,开发一个简单的闹钟小程序涉及到许多关键知识点,这些知识点涵盖了Android应用的基本结构、时间管理、用户交互以及自定义行为。以下是对这个项目的详细分析: 1. **Android应用基础**:首先,你...

Global site tag (gtag.js) - Google Analytics