android - 在 onReceive 中处理多个 intent.getStringExtra 的干净方法?

标签 android android-intent android-intentservice android-broadcastreceiver

我创建了一个 WebService 类来处理对 Web 服务的多个不同请求,此类 Broadcast 和 intent 具有不同的 key,具体取决于最初在WebService 类。我一直在研究如何在 WebServiceReceiver 上正确处理这个问题...

这是 WebService 的重要部分:

   //Broadcast the intent with data received from service call.
    broadcastIntent.putExtra(broadcastIntentKeyName, response.toString());
    sendBroadcast(broadcastIntent);

这是我的onReceive:

public class WebServiceReceiver extends BroadcastReceiver
{

    public WebServiceReceiver() {}

    @Override
    public void onReceive(Context context, Intent intent) {

        Debug.waitForDebugger();

        //NOTE: Not sure if i'm approaching this the right way, sure doesn't seem like it... 
        //Its possible that some of these will be NULL.
        String GetRequestForRouteWithDriverId_DATA = intent.getStringExtra("Helper_GetRequestForRouteWithDriverId");
        String StoreDataInServer_DATA = intent.getStringExtra("Helper_StoreDataInServer");
        String SubmitDriverRouteData_DATA = intent.getStringExtra("Helper_SubmitDriverRouteData");

        MainActivity.getInstance().updatetextViewControl(GetRequestForRouteWithDriverId_DATA);

    }
}

我的方法确实有效,但就像我在代码注释中提到的那样,感觉它不是正确的方法。

有没有更好的方法来解决这个问题?我只是想重新使用此 onReceive 来处理所有 WebService 广播。

最佳答案

也许你可以使用Intent.setAction()方法

    broadcastIntent.setAction("Your action");
    broadcastIntent.putExtra("Your Extra");
    sendBroadcast(broadcastIntent);

然后在你的接收器上......

public class WebServiceReceiver extends BroadcastReceiver
{

public WebServiceReceiver() {}

    @Override
    public void onReceive(Context context, Intent intent) {

        String action = intent.getAction();
        if(action.equals("Your Action")){
            String yourExtra = intent.getStringExtra("Your extra")
        }

    }
}

关于android - 在 onReceive 中处理多个 intent.getStringExtra 的干净方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34363062/

相关文章:

android - 适用于 Android 的 Twitter Fabric 登录

java - 在真正的 Android 手机上运行时检索 GPS 坐标不起作用

android - 如何从uri获取文件名?

android - 如何拦截蓝牙耳机的通话按钮?

android -/system/lib/libart.so 原生崩溃

android - 带有 Fragments 与单独 Activity 的两个面板 UI

android - OAuth 和自定义方案在 Chrome 中生成 "ERR_UNKNOWN_URL_SCHEME"

android - intent服务导致App崩溃

android - 从后台服务更新通知进度

android - 方法返回空值