AlarmManager am = (AlarmManager) MyTimeActivity.this .getSystemService(Context.ALARM_SERVICE);
int count = 0;//唯一值,多个闹钟这个值必须不一样,配合PendingIntent.FLAG_UPDATE_CURRENT参数使用
Intent intent = new Intent(MT_ACTION);//MT_ACTION自己定义的一个String类型参数,必须和AlarmReceiver在AndroidManifest.xml的定义一样
intent.putExtra("message", "您有10秒钟没登陆!");
PendingIntent pi = PendingIntent.getBroadcast(this, count++, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10 * 000,
pi);
intent.putExtra("message", "您有30秒钟没登陆!");
pi = PendingIntent.getBroadcast(this, count++, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 30 * 000,
pi);
intent.putExtra("message", "您有1分钟没登陆!");
pi = PendingIntent.getBroadcast(this, count++, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 60 * 000,
pi);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("message", "您有2分钟没登陆!");
pi = PendingIntent.getBroadcast(this, count++, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 2 * 60 * 1000, pi);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("message", "您有5分钟没登陆!");
pi = PendingIntent.getBroadcast(this, count++, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 5 * 60 * 1000, pi);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("message", "您有10分钟没登陆!");
pi = PendingIntent.getBroadcast(this, count++, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 10 * 60 * 1000, pi);
//定时在这个类接收
public class AlarmReceiver extends BroadcastReceiver
{
public void onReceive(final Context context, Intent intent)
{
if (GameActivity.MT_ACTION.equals(intent.getAction()))
{
Bundle bundle = intent.getExtras();
System.out.println("************" + bundle.get("message"));
Intent i = new Intent(GameActivity.MT_SERVER);//GameActivity.MT_SERVER这个参数是String类型,和上面的MT_ACTION一样,必须和AlarmService在AndroidManifest.xml的定义一样
i.putExtras(bundle);
context.startService(i);
}
}
}
public class AlarmService extends Service {
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//定义通知栏展现的内容信息
int icon = R.drawable.icon;
CharSequence tickerText = "通知栏文字";
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
notification.defaults = Notification.DEFAULT_SOUND;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
//定义下拉通知栏时要展现的内容信息
Context context = getApplicationContext();
CharSequence contentTitle = "标题";
CharSequence contentText = "内容";
Bundle bundle = intent.getExtras();
if (bundle != null) {
contentText = bundle.getString("message")+"点击进入游戏!";
}
Intent notificationIntent = new Intent(this, DemoAppActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText,contentIntent);
mNotificationManager.notify(1, notification);
}
}
//AndroidManifest.xml的定义
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.com.time"
android:versionCode="1"
android:versionName="1.0" >
09
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
10
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<uses-sdk android:minSdkVersion="4" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".MyTimeActivity"
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=".AlarmReceiver" >
<intent-filter>
<action android:name="android.intent.action.START_MY_APP" /><!-- 这个就是上面自己定义的字符串-->
</intent-filter>
</receiver>
<service android:name=".AlarmService" >
<intent-filter>
<action android:name="android.intent.action.START_SREVER" /><!-- 这个就是上面自己定义的字符串-->
</intent-filter>
</service>
<activity android:name=".DemoAppActivity" >
</activity>
</application>
</manifest>