2013-09-01 14 views
8

Mam problem moja główną działalność może być utworzony przez 3 sposoby: 1) wprowadzenie standart App 2) ze służby 3) Z powiadomień kliknięcia. Jak mogę sprawdzić, kiedy zaczyna się od powiadomienia, kliknij?Jak sprawdzić, czy aktywny zacząć od powiadomienia

kod Powiadomienie:

private void createNotification() 
{ 
    Log.d("service createNotification",MainActivity.TAG); 
    Context context = getApplicationContext(); 
    Intent notificationIntent = new Intent(this,MainActivity.class); 
    intent.putExtra(AppNames.IS_NOTIFICATION_INTENT,true); 
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, 
      notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK); 

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
      .setContentTitle(this.getString(R.string.notification_title)) 
      .setContentText(this.getString(R.string.notification_text))    
      .setContentIntent(pendingIntent)    
      .setSmallIcon(R.drawable.ic_launcher); 

    getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(AppNames.APP_NOTIFICATION, builder.getNotification()); 
} 

Odpowiedz

8

dodać

intent.putExtra("started_from","notification"); 

do kodu, który uruchamia intencyjny zgłoszeń, i to samo na drugą startActivity połączeń wystarczy zmienić wartość, a następnie wewnątrz aktywność

String startedFrom = getIntent().getStringExtra("started_from"); 

, aby uzyskać więcej informacji na to pytanie: How do I get extra data from intent on Android?

+2

Nieprawdopodobnie ta metoda nie działa, zawsze otrzymuje powiadomienie we wszystkich 3 przypadkach. – Abbath

+0

musisz zmienić "powiadomienie" w putExtra na coś innego, na przykład "serwis". –

+0

nie działa w ogóle, spójrz na @http: //stackoverflow.com/questions/14122085/determine-if-activity-is-called-by-a-notification if any1 interested –

Powiązane problemy