2012-04-14 65 views
2

我正在尝试开发一个应用程序来组织。所以在设置特定时间的任务之后,我创建了一个通知,所以此通知显示在状态栏上,当用户触摸此通知时,将显示当前活动。
我的问题是:当通知出现时,活动也启动。
反正有防止呢?我的意思是,当通知出现时,活动不会自动启动,用户必须单击通知才能唤醒活动。
只显示通知而不开始活动

我有班级“主”和一个报警管理器里面。此警报管理器将在特定时间触发并开始另一项活动(显示通知)。

{ 
    Intent intent = new Intent("com.test.DisplayNotification"); 
    intent.putExtra("alarm_message", "Alarm"); 
    intent.putExtra("item_name", "message"); 
    PendingIntent broadcast = PendingIntent.getActivity(getBaseContext(), 0, intent, 0); 
    AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE); 
    am.set(AlarmManager.RTC_WAKEUP, mili, broadcast); 
} 

在DisplayNotification类我有

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String message = getIntent().getExtras().getString("item_name"); 

     Intent i = new Intent("com.test.Main"); 


     PendingIntent detailsIntent = 
      PendingIntent.getActivity(this, 0, i, 0); 

     NotificationManager nm = (NotificationManager) 
      getSystemService(NOTIFICATION_SERVICE); 
     Notification notif = new Notification(
      R.drawable.icon, 
      "Time's up!", 
      System.currentTimeMillis()); 

     CharSequence from = "AlarmManager - Time's up!"; 
     notif.setLatestEventInfo(this, from, message, detailsIntent); 


     nm.notify(1, notif); 
     //---destroy the activity--- 
     finish(); 

    } 

回答

2

使用BroadcastReceiver为“听”的报警的结果,然后把它在其onReceive(...)方法创建Notification

+0

我刚才想到了这个,但是我在获取上下文时遇到了一些问题,但现在没问题,谢谢带我离开泥潭 – 2012-04-14 12:57:15

+0

@TrầnĐứcAnh:很高兴我能帮上忙。 – Squonk 2012-04-14 12:59:39