gpt4 book ai didi

java - IntentService 中的路由 Intent

转载 作者:行者123 更新时间:2023-12-01 12:01:07 26 4
gpt4 key购买 nike

我见过的将 Intent 路由到 Intent 服务中的处理方法的方法通常如下所示:

 if (action.equals(Constants.INTENT_UPDATE)) {
handleUpdate(intent);
} else if(action.equals(Constants.INTENT_UPDATE)) {
handleUpdate(intent);
}
...

通过添加 switch 语句可以稍微改进这一点,但我想知道是否有更好的方法在 Intent 服务中路由 Intent 。我来自 Java Web 背景,习惯使用注释或某种类型的映射文件,而使用 if/else block 更难以阅读,并且当您有大量 Intent (在我的情况下超过 20 个)时,它会变得非常难看。

这个问题我也考虑过here关于如何通过 Map 映射到方法,尽管我觉得这让它变得更加复杂。

最佳答案

我建议您使用Command图案。基本上,您创建一个实现接口(interface)的类,该接口(interface)具有 IntentService 将调用的 execute()。确保实现 Command 的每个类也实现 Parcelable,以便您可以使用 Intent 发送 Command 实现>。这个想法是能够在您的 IntentService 中执行类似的操作:

public class MyIntentService extends IntentService {

public MyIntentService(){
super("Service Name");
}

@Override
protected void onHandleIntent(Intent intent){
Command command = (Command)intent.getParcelableExtra("command");
command.execute();

}

}

关于java - IntentService 中的路由 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27975348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com