来自GPSTracker Class

时间:2016-05-06 06:09:45

标签: java android notificationmanager

我使用的是GPS跟踪器类,方法是OnLocationChanged 我想在......当地改变时发送通知:)

我用:

@Override
public void onLocationChanged(Location location) {
    latitude = (double) (location.getLatitude());
    longitude = (double) (location.getLongitude());
    //   Toast.makeText(this, "fffff", Toast.LENGTH_LONG).show();
    //  Toast.makeText(getApplicationContext(), Double.toString(latitude)   , Toast.LENGTH_LONG).show();

    Log.i("okok", "position changee" + Double.toString(latitude) + "-" + Double.toString(longitude));


        NotificationManager notif = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notify = new Notification(R.drawable.a, "tittle", System.currentTimeMillis());
        PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0);

        notify.setLatestEventInfo(getApplicationContext(), "subject", "body", pending);
        notif.notify(0, notify);

}

并且NotificationLManager的第一行有错误: java.lang.NullPointerException:尝试调用虚方法' java.lang.Object android.content.Context.getSystemService(java.lang.String)'在空对象引用上

尝试将HttpConnection用于远程网站时出现同样的问题。 我已尝试使用try {}方法

你是否有一个想法pleaaaaase 谢谢 大卫

2 个答案:

答案 0 :(得分:1)

我认为您收到此错误是因为您的Context为null

您可以尝试像这样包装并调试

if (getApplicationContext() != null) {
// Code goes here.
}

它必须对您的Context执行某些操作,尝试以不同的方式访问它

如果你发布了logcat

会更好

答案 1 :(得分:1)

getSystemService(java.lang.String)

是Context类的方法。因此需要调用Context对象。你的GPSTracker课程是什么?它是子类Context类,即Activity,application,Service?如果没有使用适当的上下文对象调用此方法,该对象在调用它时不能为空。

您完整的GPSTracker类代码有助于发现错误,否则您可以自行识别错误。