Android通知未开启活动

时间:2016-07-21 11:41:40

标签: java android android-notifications

我有一个简单的活动,我在其中创建通知。单击通知时,应该打开另一个活动。但是,Resualt活动无法启动。我在哪里弄错了?谢谢你的帮助。

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

2 个答案:

答案 0 :(得分:0)

修正此行:

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

然后改变这个:

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

并删除这些行

builder.build();

myNotication = builder.getNotification();

答案 1 :(得分:0)

我刚刚在本地测试了您的代码,您似乎忘记在AndroidManifest.xml中声明您的Resualt Activity。尝试添加

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

在应用程序标记内。