当用户点击通知时,我想启动一个Activity和两个Intent Service。
有可能吗?如果是,请任何人给我这样做的想法吗?
假设我无法控制Activity。该活动属于第三方应用。
请不要告诉我您的活动启动意向服务。我知道这个。
答案 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方式