2

我有同一个应用程序的免费和高级版本(几乎相同的代码,相同的类,到处都有“if”,清单中的不同包,清单中的相同进程名称)。主要活动调用一个服务来执行一些东西,使用隐式意图。

当我在手机上安装这两个应用程序时,事实证明,高级活动实际上有时会启动“免费”服务,而有时会启动“高级”服务。我一直在玩类别和包管理器,但它似乎太复杂了。

问题 :

  1. Android 如何处理响应同一个 Intent 的多个组件?
  2. 你会怎么做我想做的事:我在多个应用程序中都有相同的服务,我只想从所有应用程序中调用一个实例?
4

1 回答 1

0

我想你可以在意图中添加一个额外的布尔isPremium。自然,您将需要更多这些“如果”。

活动:

//send broadcast
Intent serviceStarted = new Intent(Actions.ACTION_START_SERVICE);
serviceStarted.putExtra(Extras.EXTRA_PREMIUM_VERSION, PREMIUM_VERSION);
sendBroadcast(serviceStarted);

接收者:

if (!intent.getExtras().getBoolean(Extras.EXTRA_PREMIUM_VERSION)) {
    Log.v(TAG, " - ignoring wrong version");
    return;
}
于 2011-09-06T10:46:29.437 回答