2013-03-19 2 views
3

я делаю уведомление с этим кодом:начать деятельность при нажатии на уведомления

NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
//Create your notification 
int icon = R.drawable.ic_launcher; 
CharSequence tickerText = " message"; 
long when = System.currentTimeMillis(); 
Notification notification = new Notification(icon, tickerText,when); 
Context context = getApplicationContext(); 
CharSequence contentTitle = last_notifs_array[0][2]; 
CharSequence contentText = "New Message"; 
PendingIntent pIntent = PendingIntent.getActivity(notifService.this,0, intent1,0); 
notification.setLatestEventInfo(context,contentTitle,contentText,pIntent); 
// Send the notification 
nm.notify(HELLO_ID,notification); 

Но я хочу, чтобы начать деятельность, когда я нажимаю на уведомление. Как я могу это сделать?

+2

проверить этот вопрос: http://stackoverflow.com/questions/10184351/how-to -start-активность, когда-пользователь-щелкает-а-уведомление? RQ = 1 –

ответ

3

Попробуйте это: вместо YourActivity пур нужной активности, что вы хотите, чтобы вызвать

NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     // Create your notification 
     int icon = R.drawable.ic_launcher; 
     CharSequence tickerText = " message"; 
     Intent notificationIntent 
     long when = System 
       .currentTimeMillis(); 
     Notification notification = new Notification(
       icon, tickerText, 
       when); 
     notificationIntent = new Intent(context, 
        YourActivity.class); 
     Context context = getApplicationContext(); 
     CharSequence contentTitle = last_notifs_array[0][2]; 
     CharSequence contentText = "New Message"; 
     PendingIntent pIntent = PendingIntent 
       .getActivity(
         notifService.this, 
         0, notificationIntent, 
         0); 
     notification 
       .setLatestEventInfo(
         context, 
         contentTitle, 
         contentText, 
         pIntent); 
     // Send the notification 
     nm.notify(HELLO_ID, 
       notification); 
0

Объявите PendingIntent:

Intent intent = ... create intent of your activity here .... 
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT); 

А потом просто передать параметр Я к вашим notification.pendingIntent = contentIntent;

1

Вы можете использовать этот

final NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    final Notification notification = new Notification(R.drawable.notification_popup, message, System.currentTimeMillis()); 
    final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, 
      new Intent(context, YourActivity.class), Notification.FLAG_AUTO_CANCEL); 

    notification.setLatestEventInfo(context, title, message, contentIntent); 
    notification.defaults = Notification.DEFAULT_ALL; 
    notificationManager.notify(yourId, notification); 

Это должно решить проблему

0

Используйте IntentsetClass методы, подобные мужчинам ниже.

Intent notifyIntent = new Intent(Intent.ACTION_MAIN); 
notifyIntent.setClass(getApplicationContext(), Main.class); 
1

Используйте этот код, это будет работать как шарм.

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     Notification notification = new Notification(icon, message, when); 
     String title = "Your application name with notify string."; 
     Intent notificationIntent = new Intent(context, GoogleMapActivity.class); 

     notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
     PendingIntent intent =PendingIntent.getActivity(context, 0, notificationIntent, 0); 
     notification.setLatestEventInfo(context, title, message, intent); 
     notification.flags |= Notification.FLAG_ONGOING_EVENT; 
     notification.flags |= Notification.FLAG_NO_CLEAR; 
     notification.flags |= Notification.FLAG_SHOW_LIGHTS; 
     notification.flags |= Notification.DEFAULT_LIGHTS; 
       notificationManager.notify(0, notification); 
Смежные вопросы