当我在同一个 ADT 项目中有自定义服务和自定义活动时,我可以在服务中使用它来启动我的活动:
Intent i = new Intent(context, MyCustomActivity.class);
startActivity(i);
但是,当我在单独的项目中拥有服务和活动时,我不能这样做,因为我没有直接引用MyCustomActivity.class
. 这是有问题的:我不希望仅仅为了修复损坏的引用而包含一个 JAR,因为我认为这会增加包大小并在设备上创建冗余数据(即活动代码在服务和活动包之间重复)。所以相反,我使用它(也许还有其他选择?):
Intent i = new Intent("com.mypackage.myStringActionName");
startActivity(i); //is this a broadcast?
或者
Intent i = new Intent("com.mypackage.myStringActionName");
sendBroadcast(i);
...但是当我只想将意图指向单个活动以告诉它开始时,我真的不喜欢发送广播。
那么,还有哪些其他方法可以避免重复(在 ADT 中)?或者是发送直接意图的更好方法?