2016-07-21 12 views
-1

通知を作成する簡単なアクティビティがあります。通知がクリックされると、別のアクティビティが開きます。ただし、Resualtアクティビティは開始されません。私はどこで間違いを犯したのですか?助けていただきありがとうございます。Android通知がアクティビティを開始していません

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(); 
    } 

答えて

0

修正この行は:

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

は、これを変更:

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

および削除これらの線

builder.build(); 

myNotication = builder.getNotification(); 
+0

ありがとうございます。しかし、もう一度動作しませんでした。 – amir

+0

私はちょうど答えを更新しました。それを見て – Marat

+1

@amirそれは今動作しましたか? – Marat

0

は、私はちょうどローカルであなたのコードをテストし、あなたがあなたのAndroidManifest.xmlであなたのResualtアクティビティを宣言するために忘れてしまったようです。アプリケーションタグ内に

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

を追加してみてください。

関連する問題