3

A と B の 2 つのアクティビティがあります。アプリケーションの起動時に 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" />

マニフェストで宣言する必要があるものは他にありますか? 何が問題なのですか?

4

1 に答える 1

8

で宣言TestActivity.classしましたAndroidManifest.xmlか?

于 2012-08-27T05:30:38.083 に答える