Android:在通知中调用异步任务时发生异常
我试图在用户选择的特定时间发出通知。此通知调用另一个类中的AsyncTask。每次使用以下代码调用AsyncTask时,我都会遇到一个异常:Android:在通知中调用异步任务时发生异常,android,Android,我试图在用户选择的特定时间发出通知。此通知调用另一个类中的AsyncTask。每次使用以下代码调用AsyncTask时,我都会遇到一个异常: new ExtendedActivity().new Parse().getHoroscope("daily", signo); 我已经把Log.d放在了GetOroscope上,但我得到的例外是在它之前 例外情况: java.lang.RuntimeException: Unable to start receiver com.converter.a
new ExtendedActivity().new Parse().getHoroscope("daily", signo);
我已经把Log.d
放在了GetOroscope上,但我得到的例外是在它之前
例外情况:
java.lang.RuntimeException: Unable to start receiver com.converter.android.dailyhoroscope.MyReceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference at android.app.ActivityThread.handleReceiver(ActivityThread.java:2732) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:150) at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:110) at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:222) at android.app.AlertDialog.<init>(AlertDialog.java:200) at android.app.AlertDialog.<init>(AlertDialog.java:196) at android.app.AlertDialog.<init>(AlertDialog.java:141) at android.app.ProgressDialog.<init>(ProgressDialog.java:77) at com.converter.android.dailyhoroscope.ExtendedActivity$Parse.<init>(ExtendedActivity.java:73) at com.converter.android.dailyhoroscope.MyReceiver.createNotification(MyReceiver.java:89) at com.converter.android.dailyhoroscope.MyReceiver.onReceive(MyReceiver.java:60) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2725) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
MyReceiver.java
@Override
public void onReceive(Context context, Intent intent)
{
(...)
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
signo = pref.getString(dHosocope,"");
createNotification(context, signo);
}
public void createNotification(Context context, String signo){
(...)
sentence = new ExtendedActivity().new Parse().getHoroscope("daily", signo);
}
类扩展
public class ExtendedActivity extends BaseActivity {
//AsyncThread
public class Parse extends AsyncTask<String, Void, String> {
public String getHoroscope(String type, String option){
String description="", site;
Log.d("Extended","inside getHoroscopes");
(...)
}
public类ExtendedActivity扩展BaseActivity{
//异步线程
公共类解析扩展异步任务{
公共字符串GetOroscope(字符串类型,字符串选项){
字符串description=“”,站点;
Log.d(“扩展”、“星座图内部”);
(...)
}
有人能帮我吗?您不能调用new Activity()。创建活动的唯一方法是通过startActivity()。任何其他尝试都会立即或稍后导致错误。如果需要在活动外部使用该AsyncTask,请将其设为顶级类,而不是内部类
public class ExtendedActivity extends BaseActivity {
//AsyncThread
public class Parse extends AsyncTask<String, Void, String> {
public String getHoroscope(String type, String option){
String description="", site;
Log.d("Extended","inside getHoroscopes");
(...)
}