((LocalBinder)服务)是什么意思?

时间:2012-05-18 05:57:42

标签: java android

我收到了这段代码:

mBoundService = ((LocalService.LocalBinder)service).getService();

一些好人可以解释这是什么意思:((LocalService.LocalBinder)服务) 有人可以像((A)B)那样给出一些其他的例子。

谢谢。

4 个答案:

答案 0 :(得分:4)

这只是投射。它告诉编译器,“我知道你只知道这个表达式的值为X型,但我相信在执行时它会是Y型。在执行时检查它,然后让我用它那样用。“

例如:

 Object x = getValueFromSomewhere();
 String text = (String) x; // I know x is a string reference really
 // Use text as a normal string reference

如果您对所涉及类型的信念不正确(例如x的值是Integer而不是String的引用)那么ClassCastException是抛出。

有关详细信息,请参阅Java Inheritance Tutorial(或者只是搜索“Java强化教程”以查找许多类似的教程)或查看section 15.16 of the Java Language Specification了解详细信息。

答案 1 :(得分:1)

你有一个变量(服务)并将它转换为type(LocalService.LocalBinder)然后你得到了服务 这意味着:

Service service;
LocalBinder binder = (LocalService.LocalBinder) service;
Service mBoundService = binder.getService();

试试这可能会对你有所帮助

Reference

Example

答案 2 :(得分:0)

本地活页夹意味着您的活动应仅绑定到您的应用程序。请注意,服务也可以绑定到其他应用程序。而LocalService.LocalBinder允许您的服务绑定包含该服务的应用程序。

答案 3 :(得分:0)

此语句表示“service”变量强制转换为LocalService.LocalBinder。

其他样本:

double a=1.1f;
int i=(int)a;// you can't write int i=a;