2014-10-01 2 views
-1

Я новичок в уведомлениях. Я получил сгенерированное уведомление, но хочу написать событие click для уведомления. Если я нажму уведомление, я хочу открыть один класс в моем проекте. Это моя задача.Как я могу открыть активность из уведомления в android?

Для общего ожидающего намерения я открою действие, но моя задача - каждые 30 минут, когда вещание запускается один раз. И это получит уведомление.

Я написал код, но это не открыло мое приложение, когда я нажимаю.посмотрите мой код один раз.

MainActivity

public class MainActivity extends Activity 
{ 
    Context context; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_main); 
     context = this; 
     sendBroadcastMethod(context); 
    } 
    private void sendBroadcastMethod(Context context) 
    { 
     Intent intent = new Intent(this, AlarmReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 
     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60), pendingIntent); 
     Toast.makeText(this, "Alarm Started", Toast.LENGTH_SHORT).show(); 
     Log.e("Alaram", "Alarm Started"); 
    } 
} 

AlarmReceiver

public class AlarmReceiver extends BroadcastReceiver{ 

    private NotificationManager mNotificationManager; 
    Context context2; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     context2 = context; 
     callNotification(); 
    } 

    private void callNotification() 
    { 
     mNotificationManager = (NotificationManager) context2.getSystemService(Context.NOTIFICATION_SERVICE); 

     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context2); 

     mBuilder.setSmallIcon(R.drawable.ic_launcher); 
     mBuilder.setContentTitle("My notification"); 
     mBuilder.setContentText("Hello World!"); 


     mNotificationManager.notify(0,mBuilder.build()); 
    } 
} 

Он отображает уведомление прекрасно, но где я могу написать нажать операцию для моего уведомления. Если я напишу намерение в построителе классов получателей, который не примет формулу намерения получателя.

ответ

1

Попробуйте это в callNotification() метод

Intent in = new Intent(context, YourActivity.class);  
PendingIntent pendingIntent = PendingIntent.getActivity(context, 
        0, in, 0); 
mBuilder.setContentIntent(pendingIntent).setAutoCancel(true); 
1

Добавить этот блок в ваш метод callNotification;

Intent notificationIntent = new Intent(this.context2, MainActivity.class); 
notificationIntent.setAction(Intent.ACTION_MAIN); 
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

PendingIntent contentIntent = PendingIntent.getActivity(this.context2, 0, notificationIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT); 

mBuilder.setContentIntent(contentIntent); 

Вы можете добавить флаги в этот PendingIntent. Например, в этом примере добавлен флаг для обновления текущей активности. Удачи.

+0

Вы уверены, что работаете в BroadcastReceiver? –

+0

Спасибо, что он работает нормально. – Shankar

+0

Добро пожаловать. Не забудьте принять ответы, которые решают вашу проблему. –

Смежные вопросы