【发布时间】:2014-12-30 19:19:53
【问题描述】:
当我尝试在广播接收器中使用 LockNow() 时似乎出现错误。谁能帮帮我。
public class Onlockreceive extends BroadcastReceiver {
LockSettings lockactivity;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
lockactivity.mdevicepolicymanager.lockNow();
}
}
错误信息:
12-31 03:14:16.322: D/AndroidRuntime(27478): 关闭 VM 12-31 03:14:16.322: W/dalvikvm(27478): threadid=1: 线程退出未捕获的异常 (group= 0x41b0d378) 12-31 03:14:16.332: E/AndroidRuntime(27478): 致命异常: main 12-31 03:14:16.332: E/AndroidRuntime(27478): java.lang.RuntimeException: 无法启动接收器 com。 example.settings2.Onlockreceive: java.lang.NullPointerException 12-31 03:14:16.332: E/AndroidRuntime(27478): 在 android.app.ActivityThread.handleReceiver(ActivityThread.java:2257) 12-31 03:14:16.332 : E/AndroidRuntime(27478): 在 android.app.ActivityThread.access$1500(ActivityThread.java:138) 12-31 03:14:16.332: E/AndroidRuntime(27478): 在 android.app.ActivityThread$H.handleMessage (ActivityThread.java:1283) 12-31 03:14:16.332: E/AndroidRuntime(27478): 在 android.os.Handler.dispatchMessage(Handler.java:99) 12-31 03:14:16.332: E/AndroidRuntime (27478): 在 android.os.Looper.loop(Looper.java:213) 12-31 03:14: 16.332: E/AndroidRuntime(27478): 在 android.app.ActivityThread.main(ActivityThread.java:4787) 12-31 03:14:16.332: E/AndroidRuntime(27478): 在 java.lang.reflect.Method.invokeNative (本机方法)12-31 03:14:16.332: E/AndroidRuntime(27478): at java.lang.reflect.Method.invoke(Method.java:511) 12-31 03:14:16.332: E/AndroidRuntime( 27478): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 12-31 03:14:16.332: E/AndroidRuntime(27478): 在 com.android.internal.os.ZygoteInit .main(ZygoteInit.java:556) 12-31 03:14:16.332: E/AndroidRuntime(27478): at dalvik.system.NativeStart.main(Native Method) 12-31 03:14:16.332: E/AndroidRuntime( 27478): 引起: java.lang.NullPointerException 12-31 03:14:16.332: E/AndroidRuntime(27478): at com.example.settings2.Onlockreceive.onReceive(Onlockreceive.java:15) 12-31 03:14 :16.332: E/AndroidRuntime(27478): 在 android.app.ActivityThread.handleReceiver(ActivityThread.java:2250) 12- 31 03:14:16.332: E/AndroidRuntime(27478): ... 10 更多
我的问题类似于same problem.. 但我不明白如何解决它
这是我用来调用广播接收器的代码
private void setupAlarm(int seconds,boolean s) {
// Finish the currently running activity
// MainActivity.this.finish();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(getBaseContext(), Onlockreceive.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
LockSettings.this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
Log.d(TAG, "Setup the alarm");
// Getting current time and add the seconds in it
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, seconds);
if (s == true){
//alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
//alarmManager.setInexactRepeating(type, triggerAtMillis, intervalMillis, operation)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 5000, pendingIntent );
}else if (s == false)
{
alarmManager.cancel(pendingIntent);
}
}
【问题讨论】:
标签: java android locking broadcastreceiver lockscreen