[英]Can't use a public static method?
这很混乱。 我看一下NotificationManager类的Android 2.2.2_r1源代码 ,并且看到定义为public
和static
getService()
方法。 但是,日食告诉我:
该行上的NotificationManager类型的getService()方法未定义
Object o = NotificationManager.getService();
我的项目是针对Android 2.2 / API Level 8构建的。我尝试使用反射来查看方法名称和修饰符,并且确实,我回来了
public static getService
我在这里想念什么吗? 为什么日食会告诉我这种方法不存在?
您将在这篇文章中找到非常详细的答案。
简而言之:因为您是针对android.jar
编译的,所以android.jar
删除了所有隐藏方法(例如您尝试访问的方法)。 它们仅在运行时存在,供内部android使用。
但是既然您也许也需要它。 访问NotificationManager
的正确方法是通过上下文的getSystemService
方法:
NotificationManager nm = (NotificationManager)ctx.getSystemService(Context.NOTIFICATION_SERVICE);
context
是有效上下文(例如您当前的活动)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.