2010-11-10 2 views
1

Я пытался переопределить функцию toString() службы. У меня есть служба, и я использую другое приложение для доступа к toString(). Однако вывод не так, как ожидалось, я подозреваю, что переопределение toString() не удалось! Может ли кто-нибудь помочь? СпасибоКак переопределить метод toString() в службе android?

///////////////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()); 
} 
+0

Вы можете разместить код, который вы написали ... что Будет полезно. и btw, это 'Overriding' не' перегрузка ', это две разные вещи. – st0le

+0

Большое спасибо за указание на ошибку. Я прикрепляю код, который я использовал для toString(), и способ, которым я его называю. :) – Ahsan

ответ

2

Вы ожидаете, что у вас есть rsi.getClass().toString() return "Hello World" справа? Он не работает должным образом, потому что вы вызываете другой метод toString в другом объекте. Вызов: http://developer.android.com/reference/java/lang/Class.html#toString()

Проблема заключается в том, что RunningServiceInfo сообщает вам, что такое служба. Это фактически не дает вам объекта вашей службы.

Теперь, как вы можете исправить это? Зависит от того, что вы хотите сделать точно.

Но самый лучший способ получить доступ к вашему сервису из другого приложения - связать его. Если служба находится в том же приложении, вы можете следовать этому учебнику: 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?

 Смежные вопросы

  • Нет связанных вопросов^_^