实验内容
1. 给备忘录app添加备忘时间已到提醒
实验步骤
1.使用上一次的源代码
2.创建TimesReminderService类
package com.example.xhm.my_application1;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import android.support.annotation.RequiresApi;
import java.util.ArrayList;
import java.util.Calendar;
public class TimesReminderService extends Service {
ArrayList<Record> list;
private Notification.Builder builder;
private NotificationManager notificationManager;
public TimesReminderService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
super.onCreate();
list = Utils.getRecord(getApplicationContext());
builder = new Notification.Builder(getApplicationContext());
builder.setTicker("备忘录时间到了");
builder.setAutoCancel(true);
builder.setContentTitle("备忘录内容如下:");
builder.setSmallIcon(R.drawable.ic_launcher_background);
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
new Thread(new Runnable() {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void run() {
while (true) {
list = Utils.getRecord(getApplicationContext());
if (list != null) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
String str = "日期和时间:" + year + "年"
+ (month + 1) + "月" + day + "日" + hour + ":" + minute;
c = null;
for (int i = 0; i < list.size(); i++) {
String str1 = list.get(i).content.split("---")[0];
if (str.trim().equals(str1.trim())) {
builder.setContentText(list.get(i).content.split("---")[1]);
Notification notification = builder.build();
notificationManager.notify(1, notification);
}
}
}
}
}
}).start();
}
}
在MainActivity中onCreate方法里添加如下代码
Intent service=new Intent();
service.setClass(this,TimesReminderService.class);
startService(service);