2016-07-21 12 views
-1

Ich habe eine einfache Aktivität, wo ich eine Benachrichtigung erstellen. Wenn auf die Benachrichtigung geklickt wird, sollte eine andere Aktivität geöffnet werden. Die Resualt-Aktivität wird jedoch nicht gestartet. Wo habe ich einen Fehler gemacht? Danke für jede Hilfe.Android-Benachrichtigung öffnet keine Aktivität

MainActivity:

public class MainActivity extends Activity { 
Button btnShow, btnClear; 
NotificationManager manager; 
Notification myNotication; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button notif = (Button) findViewById(R.id.notif); 
    manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    notif.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      showNotif("09364415580", "hello!", getApplication()); 
     } 
    }); 

} 
public void showNotif(String from, String body , Context con) { 

    Intent intent = new Intent(MainActivity.this , Resualt.class); 

    PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 1, intent, 0); 

    Notification.Builder builder = new Notification.Builder(MainActivity.this); 

    builder.setAutoCancel(false); 
    builder.setTicker(body); 
    builder.setContentTitle(from); 
    builder.setContentText(body); 
    builder.setSmallIcon(R.drawable.searc); 
    builder.setContentIntent(pendingIntent); 
    builder.setOngoing(true); 
    // builder.setSubText("This is subtext..."); //API level 16 
    builder.setNumber(100); 
    builder.build(); 

    myNotication = builder.getNotification(); 
    manager.notify(11, myNotication); 

} 

ResualtActivity:

public class Resualt extends Activity{ 
    @Override 
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
     super.onCreate(savedInstanceState, persistentState); 
     setContentView(R.layout.resualt); 
     Toast.makeText(getApplicationContext(),"hi ! hi ! hi ! " , Toast.LENGTH_LONG).show(); 
    } 

Antwort

0

Fix diese Zeile:

NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this); 

dann dies ändern:

manager.notify(11, builder.build()); 

und löschen diese Zeilen

builder.build(); 

myNotication = builder.getNotification(); 
+0

danke.aber es hat nicht wieder funktioniert. – amir

+0

Ich habe gerade die Antwort aktualisiert. Schau es dir an – Marat

+1

@amir Hat es jetzt funktioniert? – Marat

0

Getestet habe ich nur vor Ort Ihre Code- und es scheint, dass Sie Ihre Resualt Aktivität vergessen haben in Ihrem AndroidManifest.xml zu erklären. Versuchen Sie, eine

<activity android:name=".Resualt"> 
</activity> 

in Ihrem Anwendungs-Tag hinzuzufügen.