执行asynctask时我的应用程序崩溃了。我尝试将数据从android发送到服务器,但我的应用程序在执行AsyncTask时崩溃 `input input = new input(); input.execute();
class func from(#year:Int, month:Int, day:Int) -> NSDate {
var c = NSDateComponents()
c.year = year
c.month = month
c.day = day
var gregorian = NSCalendar(identifier:NSCalendarIdentifierGregorian)
var date = gregorian!.dateFromComponents(c)
return date!
}
这是我的完整代码http://pastebin.com/jRdxeQKG 这是我的logcat http://prntscr.com/7p3vbz
答案 0 :(得分:1)
当您在db
中致电new input()
时,参考onCreate()
为空。
解决方案:在致电db
之前初始化new input()
:
db = new SQLiteHandler(getApplicationContext());
input input = new input();
顺便提一下,从设计的角度来看存在很多问题,但这将解决(崩溃)其中一个问题。
答案 1 :(得分:0)
1 使用小写字母开始您的班级名称是不好的做法。input
应为Input
,并且应该更具描述性。
2 您的数据库初始化应该在执行AsyncTask
的调用之前进行3 在使用之前,您需要真正了解AsyncTask。您为AsyncTask
声明了三种泛型类型 public class input extends AsyncTask<String, String, String> {
但没有使用它们。您的doInBackground方法应该返回类型为NameValuePair
或JSONObject
的实例。
AsyncTask的第一个泛型类型是params
,这是您打算传递给doInBackground方法的内容。你说它是String
但不传入input.execute();
中的任何字符串这不是问题,因为你没有尝试使用args0
,但如果你试试你的应用程序会崩溃至。我只是认为你应该首先阅读AsyncTask并了解基础知识。这将为你省去很多麻烦。欢呼。