Android 具有服务中意图的方法导致小部件停止运行
我已经在一个小部件中创建了一个服务来处理onClick意图。但当添加到屏幕上时,它会强制关闭,我不明白为什么 这是导致其失败的方法:Android 具有服务中意图的方法导致小部件停止运行,android,service,widget,Android,Service,Widget,我已经在一个小部件中创建了一个服务来处理onClick意图。但当添加到屏幕上时,它会强制关闭,我不明白为什么 这是导致其失败的方法: public void onClick() { RemoteViews top=new RemoteViews(context.getPackageName(), layoutID); RemoteViews bottom=new RemoteViews(context.getPackageName(), layoutID); In
public void onClick() {
RemoteViews top=new RemoteViews(context.getPackageName(), layoutID);
RemoteViews bottom=new RemoteViews(context.getPackageName(), layoutID);
Intent clickintenttop=new Intent("android.tristan.widget.digiclock.CLICK1");
Intent clickintentbottom=new Intent("android.tristan.widget.digiclock.CLICK2");
PendingIntent pendingIntentClickTop=PendingIntent.getBroadcast(context, 0, clickintenttop, 0);
PendingIntent pendingIntentClickBottom=PendingIntent.getBroadcast(context, 0, clickintentbottom, 0);
bottom.setOnClickPendingIntent(R.id.BottomRow, pendingIntentClickBottom);
top.setOnClickPendingIntent(R.id.TopRow, pendingIntentClickTop);
int Top = appWidgetIds.length;
int Bottom = appWidgetIds.length;
for (int i=0; i<Top; i++)
{
appWidgetManager.updateAppWidget(appWidgetIds[i], top);
}
for (int j=0; j<Bottom; j++)
{
appWidgetManager.updateAppWidget(appWidgetIds[j], bottom);
}
}
正在从onCreate调用该方法。谁能把我推向正确的方向
编辑:取自LogCat:
W/dalvikvm22312:threadid=1:线程退出,未捕获异常组=0x400259f8
E/AndroidRuntime22312:致命异常:主
E/AndroidRuntime22312:java.lang.RuntimeException:无法创建服务android.tristan.widget.digiclock.IntentService:java.lang.NullPointerException
E/AndroidRuntime22312:at android.app.ActivityThread.handleCreateServiceActivityThread.java:3140
E/AndroidRuntime22312:android.app.ActivityThread.access$3300ActivityThread.java:135
E/AndroidRuntime22312:at android.app.ActivityThread$H.handleMessageActivityThread.java:2202
E/AndroidRuntime22312:at-android.os.Handler.dispatchMessageHandler.java:99
E/AndroidRuntime22312:at-android.os.Looper.Looper.java:144
E/AndroidRuntime22312:at android.app.ActivityThread.mainActivityThread.java:4937
E/AndroidRuntime22312:at java.lang.reflect.Method.Invokenactive Method
E/AndroidRuntime22312:at java.lang.reflect.Method.invokeMethod.java:521
E/AndroidRuntime22312:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:868
E/AndroidRuntime22312:com.android.internal.os.ZygoteInit.mainZygoteInit.java:626
E/AndroidRuntime22312:at dalvik.system.NativeStart.main本地方法
E/AndroidRuntime22312:原因:java.lang.NullPointerException
E/AndroidRuntime22312:at-android.tristan.widget.digiclock.IntentService.onClickIntentService.java:58
E/AndroidRuntime22312:at-android.tristan.widget.digiclock.IntentService.onCreateIntentService.java:40
E/AndroidRuntime22312:android.app.ActivityThread.handleCreateServiceActivityThread.java:3125您的问题是上下文为空。在使用它之前,您需要将其分配给某个对象。或者,如果您在服务中,只需使用它,因为服务是一个上下文
然而,在尝试这样的事情之前,您似乎需要更好地掌握基本编程概念。阅读一些基本的Java教程,比如,或者查看本文中提到的一些书籍或资源
你还没有准备好对付Android。从基础做起,从基础做起。请发布fc的完整堆栈跟踪。使用logcat:在eclipse中打开DDMS透视图,或在命令行上运行adb logcat。@tristan202空指针后是否不再有stacktrace?空指针指向哪一行代码?好吧,现在看来是onCreate出于某种原因导致了FC。我试图删除该调用并将其替换为toast,但它在没有显示toast的情况下崩溃。@Mayra我看不出它指向的是哪一行代码。如果我将整个项目压缩并上传到某个地方,那么让您查看整个项目的要求是否过高?这告诉您这是由IntentService第58行的空指针引起的,您正在尝试创建toast。附近发生了什么事?不,对不起,我没有时间帮你调试。这是一项重要的技能,学习如何阅读并采取行动。