IntentService - startService上的NullPointerExecption

时间:2016-09-14 06:18:21

标签: java android android-intent nullpointerexception android-intentservice

我正在尝试使用Android提供的IntentService功能尝试在后台运行一些计算

我从昨天起就开始研究这个问题,但我似乎无法找到任何有效的解决方案 我已经查看了很多关于IntentService的SO问题,并尝试应用建议的修复程序,但我似乎无法工作。

我尝试从我调用该函数的Activity调用各种不同的context / Activies / getApplicationContext() / this / getBaseContext(),但我仍然 null对象引用错误

  

“尝试调用虚方法'android.content.ComponentName   android.content.Context.startService(android.content.Intent)'上一个   null对象引用“

应用程序在调用startService()的函数的第3行崩溃时(参见下面的代码)

//This function is from MyCurrentClass.class - it is a Singleton and its being called from another activity where it passes in its context
public void notify (Context context, JSONObject responseFromDb){

    Intent inputIntent = new Intent(context, MyCurrentClass.class);
    inputIntent.putExtra("responseFromDB", responseFromDb.toString());
    this.startService(inputIntent); //crashes here!
}

P.S。:我看过的大多数解决方案似乎只有1个活动,但我的应用程序在不同的活动之间切换。 (不确定这是否重要)但最重要的是我正在研究的类是一个普通的Java类,它扩展了IntentService而不是Activity类

我还在我的Android清单中声明了该服务链接到MyCurrentClass并尝试了来自Activity的bindService():它被调用了,但它也没有用。

以下是我看过并试过但未通过的一些问题/解决方案:

我实际上看了很多其他帖子,但有太多了。

希望我提供的信息足够了。如果不是,请告诉我可能缺少的内容,我将使用所需信息更新问题。

1 个答案:

答案 0 :(得分:2)

使用您在活动中收到的评论中提到的Bs = set(B) # 'in' operator is faster for sets result = [] for n1 in A: # Iterate through first set for n2 in g.adj[n1]: # Than through edges connected to a node if n2 in Bs: # Check is it edge between A and B result.append(n1, n2) ,因为在这种情况下,您当前的课程没有上下文。read for further details

context

而不是

context.startService(inputIntent);