잠시 동안이 문제에 봉착했습니다.다중 데이터베이스 용 브로드 캐스트 수신기
여러 데이터베이스 커서가있는 브로드 캐스트 수신기에 대한 좋은 예가 있습니까?
문제 : 저는 PagerTabStrip을 구현했으며 BroadCast 수신기와 알림 알림을 구현했습니다.
그래서 장치 화면에서 알림을 클릭하면 첫 번째 커서 만 열립니다. 다른 커서도 열리지 않습니다 .. 나는 커서 커서를 닫았습니다.
이 내용은 공백없이 원하는 공백을 열 수 있습니다.
public class ReminderService extends WakeReminderIntentService{
public ReminderService(){
super("ReminderService");
}
@SuppressWarnings("deprecation")
void doReminderWork(Intent intent){
Log.d("ReminderService", "Doing work.");
Long rowId = intent.getExtras().getLong(TaskDatabase.KEY_ROWID);
NotificationManager mgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(this, TaskEdit.class);
notificationIntent.putExtra(TaskDatabase.KEY_ROWID, rowId);
PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT);
/// 나머지 CODE.
브로드 캐스트 리시버가 장소에 당신의 질문의 이해를
public void onReceive(Context context, Intent intent){
ReminderManager reminderMgr = new ReminderManager(context);
TaskDatabase dbHelper = new TaskDatabase(context);
dbHelper.open();
Cursor cursor = dbHelper.fetchAllGeneralRemindersByDefault();
if(cursor != null){
cursor.moveToFirst();
int rowIdColumnIndex = cursor.getColumnIndex(TaskDatabase.KEY_ROWID);
int dateTimeColumnIndex = cursor.getColumnIndex(TaskDatabase.KEY_DATE_TIME);
while(cursor.isAfterLast() == false){
Log.d(TAG, "Adding alarm from boot.");
Log.d(TAG, "Row Id Column Index - " + rowIdColumnIndex);
Log.d(TAG, "Date Time Column Index - " + dateTimeColumnIndex);
Long rowId = cursor.getLong(rowIdColumnIndex);
String dateTime = cursor.getString(dateTimeColumnIndex);
Calendar cal = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat(TaskEdit.DATE_TIME_FORMAT);
try{
java.util.Date date = format.parse(dateTime);
cal.setTime(date);
reminderMgr.setReminder(rowId, cal);
}catch(java.text.ParseException e){
Log.e("OnBootReceiver", e.getMessage(), e);
}
cursor.moveToNext();
}
문제가 무엇입니까? – cYrixmorten
질문이 업데이트 됨 –
알림을 처리하는 코드를 표시 할 수 있습니까? – cYrixmorten