如何在通知单击时启动一个活动和两个服务

时间:2014-05-14 10:25:52

标签: android android-notifications

当用户点击通知时,我想启动一个Activity和两个Intent Service。

有可能吗?如果是,请任何人给我这样做的想法吗?

假设我无法控制Activity。该活动属于第三方应用。

请不要告诉我您的活动启动意向服务。我知道这个。

2 个答案:

答案 0 :(得分:3)

按照希望这可以帮助您的步骤

1)创建BroadCastReceiver

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        // Start Activity
        // Start Services
    }

}

2)点击通知点击广播。

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Intent intent = new Intent(context, MyBroadcastReceiver.class);
        PendingIntent contentIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
        Notification notification = new Notification(icon, ticker, when);
        notification.setLatestEventInfo(mSmartAndroidActivity, title, message, contentIntent);
        notification.flags = Notification.FLAG_AUTO_CANCEL;
        notificationManager.notify(0, notification);

使用PendingIntent.getBroadcast代替PendingIntent.getActivity

3)在BroadcastReceiver的onReceive()方法

- >打电话给你的第三方活动

- >启动服务

答案 1 :(得分:0)

Biraj给出的答案也将起到作用。

但是为此你必须在清单文件中声明BroadcastReceiver以及从BroadcastReceiver开始的所有活动和服务。

所以我没有选择上述方式。

我是如何实施的?

我已经从我开始活动的位置启动了一个Intent服务,并向服务器发出同步请求。通过这种方式,我不必在我最熟悉的文件中声明BroadcastReceiver。

我相信编写更少的代码,所以我选择了上面的Intent Service方式