Android为getSystemService获取NullPointerException

时间:2014-12-10 08:16:27

标签: android android-notifications

我想简单地创建一个Android通知类,以便在任何地方使用它,但在此代码中,NullPointerException变量出现notificationManager错误:

    public class TsNotify extends Activity {
        private NotificationManager notificationManager;

        @Override
        protected void onCreate (Bundle savedInstanceState) {
            super.onCreate ( savedInstanceState );
            notificationManager = (NotificationManager) getSystemService ( Context.NOTIFICATION_SERVICE );
        }

        public void notify( String title ) {
           ...
           notificationManager.notify ( NOTIFICATION_ID, notification ); 
        }
    }

我将其更改为此行,但此问题无法解决:

notificationManager = (NotificationManager) this.getSystemService ( Context.NOTIFICATION_SERVICE );

notificationManager = (NotificationManager) getBaseContext().getSystemService ( Context.NOTIFICATION_SERVICE );

notificationManager为NULL

1 个答案:

答案 0 :(得分:1)

我想建议更好的方法,不要扩展活动类,因为你需要总是启动那个活动,这样你的“oncreate”方法就会被调用,并且通知管理器会被初始化。具有可用的应用程序上下文的单独类(在类扩展应用程序上创建,并在应用程序标记中添加android清单)。现在,在该类中,将覆盖的方法写入您希望使用图像通知或简单文本通知,动作通知等通知的位置。

空指针异常可能是因为你没有调用启动活动。你的方法也不是很干净。