2012-12-20 38 views
0

我有一個Activity在啓動完成後啓動,Autostart類調用一個Activity(notify)。我需要在沒有活動的情況下啓動Notify.class。我將如何更改通知代碼?謝謝!沒有活動的BroadcastReceiver

AutoStart 

public class AutoStart extends BroadcastReceiver{ 

@Override 
public void onReceive(Context context, Intent intent) { 
     Intent i = new Intent(context, Notify.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
} 

Notify 

public class Notify extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

Calendar cal1 = Calendar.getInstance(); 
cal1.set(Calendar.HOUR_OF_DAY, 05); 
cal1.set(Calendar.MINUTE, 45); 
cal1.set(Calendar.SECOND, 00); 

Calendar cal2 = Calendar.getInstance(); 
cal2.set(Calendar.HOUR_OF_DAY, 17); 
cal2.set(Calendar.MINUTE, 30); 
cal2.set(Calendar.SECOND, 00); 

Calendar now = Calendar.getInstance(); 
if(now.after(cal1)) 
    cal1.add(Calendar.HOUR_OF_DAY, 24); 
if(now.after(cal2)) 
    cal2.add(Calendar.HOUR_OF_DAY, 24); 

Intent intent = new Intent(this, AlarmReceiver.class); 
PendingIntent morningAlarm = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0); 
PendingIntent eveningAlarm = PendingIntent.getBroadcast(getApplicationContext(), 1, intent, 0); 

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, morningAlarm); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, eveningAlarm); 
+0

只需在AutoStart類的onReceive函數中創建警報? – 1615903

回答

0

您不需要Activity來發出通知,但您確實需要一個Android組件。什麼是開機啓動?無論哪一類都可以發佈通知。

+0

自動啓動課程調用活動和通知都可以。當我啓動模擬器時,開始一個空的活動,然後通知。現在,我只需要沒有活動的通知 –

+0

AlarmReceiver是帶有通知代碼的類 –

相關問題