我使用的是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 谢谢 大卫
答案 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类代码有助于发现错误,否则您可以自行识别错误。