如何从服务中调用活动?

时间:2014-11-20 06:23:51

标签: android

我创建了两个项目。一个项目将充当图书馆,另一个项目将作为主要项目。我将主项目调用到库项目,然后库项目将发送通知。它的工作正常,但我的问题是,如果我点击通知它将进入主项目活动。我能做什么?在android中有可能吗?

在图书馆项目中:

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
            new Intent("com.sample.myapp.Monitor"), 0);
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
            context).setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("Start Scheduler")
            .setContentText("Please start your activity!")
            .setContentIntent(contentIntent).setAutoCancel(true)
            .setLights(Color.RED, 1, 1);
    NotificationManager mNotificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(1, mBuilder.build());

此处com.sample.myapp.Monitor是主项目活动。如果我点击通知,它不会调用主项目活动。

2 个答案:

答案 0 :(得分:1)

最后,我得到了将我的图书馆项目连接到主项目活动的解决方案。

Intent intent = new Intent(); intent.setComponent(new ComponentName(“com.example”,“com.example.MyExampleActivity”)); PendingIntent contentIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);

答案 1 :(得分:0)

我不确定我是否理解正确,因此您想要创建通知,当用户点击它时,您想向他显示您的活动,对吧?在这种情况下,您可以阅读Google documentation about that

编辑:Here你可以看一个用BroadcastReceiver创建服务的好例子。我假设你的库做了一些后台处理(也许在服务中)。所以我建议采用以下方案:

  1. 您的应用程序使用已注册的BroadcastReceiver
  2. 启动服务
  3. 您的图书馆项目会进行一些后台处理,然后按照提供的示例中所述发送广播。
  4. 以前注册的BroadcastReceiver接收广播并发送通知,其中包含指向您的活动的操作(如我原始回答中的开发者页面所述)
  5. 用户点击通知和活动打开。