由服务创建的通知中,挂起的意图无法正常工作。

3

我有两个活动A和B。当应用程序启动时,会启动A。我有一个从A启动的服务。

以下是我的A活动代码。

Button btnStart = (Button) findViewById(R.id.button1);
    btnStart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startService(new Intent(getBaseContext(), Service_class.class));

        }
    });

这是我的服务中的 onStartCommand 方法。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    createNotification();
    Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
    return START_STICKY;
}

这里是createNotification方法

private void createNotification() {

    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    Intent nintent = new Intent();
    nintent.setClass(this, TestActivity.class);
    PendingIntent pin = PendingIntent.getActivity(getApplicationContext(),
            0, nintent, 0);
    String title = "KR Darsan";
    String body = "This is a notification from darsh";
    Notification n = new Notification(R.drawable.ic_launcher, body,
            System.currentTimeMillis());
    n.contentIntent = pin;
    n.setLatestEventInfo(getApplicationContext(), title, body, pin);

    n.defaults = Notification.DEFAULT_ALL;
    nm.notify(unique_id, n);

}

我正在将活动B(TestActivity)设置在待定意图中。通知如我所需地显示,但是当我单击通知时,活动不能启动。
我在清单文件中声明了服务。
<service android:name=".Service_class" />

我应该在清单文件中声明其他内容吗?可能出了什么问题?

1个回答

8

你是否在 AndroidManifest.xml 中声明了 TestActivity.class


2
我的错!谢谢你指出来。我总是犯这种愚蠢的错误。 - darsh
你是说TestActivity.class应该在两个清单文件中都列出来吗?也就是说,在Activity A和Activity B的清单文件中都要列出来? - PeteH
Activity是应用程序的一个单独窗口,而不是应用程序本身。应用程序或库项目只能有一个清单。 - Auriukas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接