java - 如何覆盖 android 服务中的 toString() 方法?

标签 java android tostring

我试图覆盖服务的 toString() 函数。我有一个服务,我正在使用另一个应用程序来访问 toString()。但是输出不符合预期,我怀疑 toString() 的覆盖失败了!谁能帮忙?谢谢

///////////////toString Function in the service !///////////////

public String toString() {
   return "Hello World";
}

//////////how I am calling the overridden function !////////////////////

ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);

List<ActivityManager.RunningServiceInfo> rs = am.getRunningServices(50);

for (int i=0; i<rs.size(); i++) {
    ActivityManager.RunningServiceInfo rsi = rs.get(i);
    Log.i("Hello",rsi.getClass().toString());
    Log.i("Service", "Process " + rsi.process + " with component " + 
            rsi.service.getClassName());
}

最佳答案

您希望 rsi.getClass().toString() 返回“Hello World”,对吗? 它没有像上面预期的那样工作,因为您在另一个对象中调用了另一个 toString 方法。您调用此函数:http://developer.android.com/reference/java/lang/Class.html#toString()

这里的问题是,RunningServiceInfo 只告诉您正在运行的服务。它实际上并没有给你服务的对象。

现在你怎样才能让它正确呢?具体取决于您想要做什么。

但是从另一个应用程序访问您的服务的最好方法是绑定(bind)到它。 如果您的服务在同一个应用程序中,您可以按照本教程进行操作: http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/

如何从另一个应用程序中做到这一点:
how to bind a remote service that is installed on my android device?

关于java - 如何覆盖 android 服务中的 toString() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141369/

相关文章:

java - 测试 toString 但失败?

Java 返回数组

java - 使用 Java SE 6 和 Tomcat 6 安装和配置 JDBC - 请帮忙

android - onclick 按钮 Activity 没有响应

java - 使用 toString 方法在 java 中仅显示日期

java - ByteArray 到intentService 中的byte[]?

android - MaterialButton 上的 BadgeDrawable 未显示

java - Webdriver FluentWait 不忽略异常

java - RDF/XML 如何定义 RDFS 类、子类并将它们链接为一个类型

java - 以小为单位获取数据而不是一次获取