Android通知

时间:2012-04-16 09:03:58

标签: android android-intent

我创建了一个通知applcation.Notification正在进行。我想通过点击通知去进行一项新活动。我不知道怎么做。请给我一个帮助。谢谢你!

我有两个通知课程 1. Notification_2Activity

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
       DatePicker dp = (DatePicker) findViewById(R.id.datePicker1);
        TimePicker tp = (TimePicker) findViewById(R.id.timePicker1);
     int month = dp.getMonth();
        int year = dp.getYear();
        int dayofmonth= dp.getDayOfMonth();

        int hourofday=tp.getCurrentHour();
        int minute=tp.getCurrentMinute();
        EditText e = (EditText) findViewById(R.id.editText1);
      e.setText("montho="+(month+1)+" year="+year+" day="+dayofmonth+" hour"+hourofday+" minute="+minute);
 Calendar cal = Calendar.getInstance();       //for using this you need to import java.util.Calendar;

        // add minutes to the calendar object
        cal.set(Calendar.MONTH,month);

        cal.set(Calendar.YEAR,year);                
        cal.set(Calendar.DAY_OF_MONTH, dayofmonth);
        cal.set(Calendar.HOUR_OF_DAY, hourofday);
        cal.set(Calendar.MINUTE, minute);


        Intent alarmintent = new Intent(getApplicationContext(), AlarmReceiver.class);
        alarmintent.putExtra("title","Title of our Notification");
        alarmintent.putExtra("note","Description of our  Notification");
        PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), HELLO_ID,
                alarmintent,PendingIntent.FLAG_UPDATE_CURRENT|  Intent.FILL_IN_DATA);


        AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);

这是我的第二堂课 Alarmreceiver.java

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub


    NotificationManager manger = (NotificationManager)     
            context.getSystemService(Context.NOTIFICATION_SERVICE);
            Notification notification = new Notification(R.drawable.ic_launcher, "Combi Note",
             System.currentTimeMillis());
            PendingIntent contentIntent = PendingIntent.getActivity(context, 
            NOTIFICATION_ID, 
            new Intent(context, NotifyMessage.class), 0);

                    Bundle extras=intent.getExtras();
                    String title=extras.getString("title");
            //here we get the title and description of our Notification
                        //
                    String note=extras.getString("note");
                    notification.setLatestEventInfo(context, note, title, contentIntent);
                    notification.flags = Notification.FLAG_INSISTENT;
                    notification.defaults |= Notification.DEFAULT_SOUND;
            //here we set the default sound for our 
            //notification

                    // The PendingIntent to launch our activity if the user selects this notification
                    manger.notify(NOTIFICATION_ID++, notification);


}

3 个答案:

答案 0 :(得分:2)

Intent notificationIntent = new Intent(this, youractivity.class);
PendingIntent contentIntent = PendingIntent
                                   .getActivity(this, 0, notificationIntent, 0);

在清单文件中添加您的活动名称

答案 1 :(得分:1)

在通知中添加pendingIntent并在本地广播。

Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent to the top of the stack
stackBuilder.addNextIntent(resultIntent);
// Gets a PendingIntent containing the entire back stack
PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
...
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(id, builder.build());

答案 2 :(得分:0)

我在我的案例中使用了这个:

public void createNotificationToClient(Context context, String payload)
    NotificationManager notificationManager = (NotificationManager) context
                    .getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.icon,
                    "title", System.currentTimeMillis());
            // Hide the notification after its selected
     notification.flags |= Notification.FLAG_AUTO_CANCEL;
       Intent intent = new Intent(context, yourActivity.class);
       intent.putExtra("payload", payload);

       intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
       PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                        intent, 0);
       notification.setLatestEventInfo(context, "title", payload,
                         pendingIntent);
       notificationManager.notify(0, notification);
}