类似于startActivityForResult
的方法在服务(Service)中并不直接支持。但是,您可以使用ResultReceiver
类来实现类似的功能。ResultReceiver
允许您在服务中传递结果给调用的组件。
以下是一个简单的示例:
ResultReceiver
实例:private ResultReceiver resultReceiver;
public void setResultReceiver(ResultReceiver resultReceiver) {
this.resultReceiver = resultReceiver;
}
send
方法:if (resultReceiver != null) {
Bundle resultData = new Bundle();
resultData.putString("key", "value");
resultReceiver.send(RESULT_CODE, resultData);
}
ResultReceiver
实例,并将其传递给服务:ResultReceiver resultReceiver = new ResultReceiver(new Handler()) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
if (resultCode == RESULT_CODE) {
String result = resultData.getString("key");
// 处理结果
}
}
};
// 将 ResultReceiver 传递给服务
service.setResultReceiver(resultReceiver);
这样,您就可以在服务中传递结果给组件,类似于startActivityForResult
在活动(Activity)中的工作方式。
请注意,这个方法不依赖于任何特定的云计算品牌商。它是一个纯粹的 Android 开发方法,可以在任何 Android 应用程序中使用。
第四期Techo TVP开发者峰会
第四期Techo TVP开发者峰会
云+社区技术沙龙[第9期]
微服务平台TSF系列直播
腾讯云GAME-TECH游戏开发者技术沙龙
云+社区开发者大会(北京站)
云+社区技术沙龙[第17期]
云+社区技术沙龙[第22期]
领取专属 10元无门槛券
手把手带您无忧上云