是否有适当的方式公开描述/声明其他人的广播意图?
例如,我有一个应用程序,可以在意图的帮助下广播信息。另一个应用程序想要在广播接收器中使用这些意图。其他应用程序如何知道意图提供了什么?
我现在正在研究如何使用其动作名称,额外内容公开记录意图。我有类似Eclipse扩展点描述的东西。有什么建议吗?
答案 0 :(得分:1)
只需在某处定义所需的常量,例如在处理这些常量的Service
或BroadcastReceiver
中,如果需要,可以编写java doc来描述每个字段:
public class SomeService extends IntentService {
/**
* Used to tell the {@link com.example.SomeService} to display a notification
*/
public static final String ACTION_NOTIFICATION = NotificationService.class.getName() + "_ACTION_NOTIFICATION";
/**
* An Intent extra for the id of a reminder. Used by {@link at.medmedia.copaxone.service.NotificationService#ACTION_NOTIFICATION}
*/
public static final String EXTRA_REMINDER_ID = NotificationService.class.getName() + "EXTRA_REMINDER_ID";
...
}
SomeService.class.getName()
用于为所有常量添加前缀。这确保了(很有可能)这些常量具有唯一的String
值。如果您的库或框架被第三方应用程序使用,那么这些值是唯一的非常重要。
正在使用您的图书馆的人可以毫无问题地构建Intents
:
Intent intent = new Intent(context, SomeService.class);
intent.setAction(SomeService.ACTION_NOTIFICATION);
intent.putExtra(SomeService.EXTRA_REMINDER_ID, reminder.getId());
startService(intent);
除此之外,我不担心。如果人们想要与您的应用程序/库/他们只需要知道如何进行交互。你可以通过定义上面的常量来简化编码本身,减少痛苦,但是其他开发人员仍然必须知道他在做什么,所以他/她会查看指南或教程(最好是你提供的东西)来学习什么他/她需要知道。
如果需要,您还可以在一个Java文件中定义所有这些常量,并为此提供单独的下载链接。