使用Messenger界面进行IPC时从另一个应用程序的服务访问静态变量

问题描述 投票:0回答:1

我正在阅读以下教程:https://developer.android.com/guide/components/bound-services#Messenger以及https://www.survivingwithandroid.com/android-bound-service-ipc-with-messenger-2/

以了解我们如何通过使用Messenger系统与其他应用程序创建的服务进行通信。

但是我无法理解我们如何像这样调用其他应用程序服务:

switch (respCode) {
    case ConvertService.TO_UPPER_CASE_RESPONSE: {
     result = msg.getData().getString("respData");
     txtResult.setText(result);
    }
   }

这里convertservice是他们在本教程中使用的服务。但是,如何访问其他应用程序服务的静态变量。因为感觉就像他们创建了本地服务并调用了它。.对此感到抱歉,但我无法理解。

android android-intent service messenger
1个回答
0
投票

静态变量不需要创建对象,它们始终可用。即使静态变量为final,编译器也会用该变量的值替换静态变量。

如果注意,请在ConvertService.TO_UPPER_CASE_RESPONSE的类上调用ConvertService,而不是ConvertService的对象

class A{
  static final String NAME = "name of A";
}

class B{
 void fun(String str){
    switch(str){
        case A.NAME:// compiler changes this line to [case "name of A":]
       //...
     break;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.