Android 从广播接收器启动服务时出错

Android 从广播接收器启动服务时出错,android,service,broadcastreceiver,Android,Service,Broadcastreceiver,我是服务行业的新手,所以请容忍我。我正试图从我的broadcastreceiver启动服务类,但应用程序崩溃。在我的broadcastreceiver中,我正在检查传入的sms,并将其插入数据库,然后启动服务 显示 在这里: db对象为null因为在服务中的任何位置都未初始化。请按以下方式执行: db=LocalService.this.openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null); Cursor c=db.rawQu

我是服务行业的新手,所以请容忍我。我正试图从我的broadcastreceiver启动服务类,但应用程序崩溃。在我的broadcastreceiver中,我正在检查传入的sms,并将其插入数据库,然后启动服务

显示 在这里:

db
对象为
null
因为在服务中的任何位置都未初始化。请按以下方式执行:

db=LocalService.this.openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null);
Cursor c=db.rawQuery("SELECT * FROM student 
                  WHERE id=(SELECT MIN(id) FROM student)", null);

数据库工作正常,因为我正在签入MainActivity布局。这项服务还没有开始。非常感谢你。应用程序未因服务未启动错误而崩溃。
public class LocalService extends Service {

    SQLiteDatabase db;
    String resource, Time, Mesg, webResponse;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    } 

    @Override  
    public void onCreate() {  
        // Toast.makeText(this, "Service Created", Toast.LENGTH_LONG).show();  
    }  

    @Override  
    public void onStart(Intent intent, int startid) {  
        // Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();  
        Cursor c=db.rawQuery("SELECT * FROM student WHERE id=(SELECT MIN(id) FROM student)", null);
        if(c.getCount()==0){
            Toast.makeText(getApplicationContext(), "No SMS found", Toast.LENGTH_SHORT).show(); 
        }
        else if(c.moveToNext()) {
            Sender = c.getString(1);
            TimeStamp = c.getString(2);
            Mesg = c.getString(3); 
        }
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://example.com/createsms.asmx/broadcast?"); 

        //Post Data
        List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(5);
        nameValuePair.add(new BasicNameValuePair("a", "AB1"));
        nameValuePair.add(new BasicNameValuePair("b", "IN"));
        nameValuePair.add(new BasicNameValuePair("c", resource));
        nameValuePair.add(new BasicNameValuePair("d", Time));
        nameValuePair.add(new BasicNameValuePair("e", Mesg));

        //Encoding POST data
        try{
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
        }catch (UnsupportedEncodingException e) {

            e.printStackTrace();
            System.out.println(e);
        }

        //making POST request.
        try{
            HttpResponse response = httpClient.execute(httpPost);
            String XmlString = EntityUtils.toString(response.getEntity());
            XmlString=XmlString.replaceAll("\\<\\?xml(.+?)\\?\\>", "").trim();
            XmlString = XmlString.substring(XmlString.indexOf("[") + 1, XmlString.lastIndexOf("]"));
            JSONObject jObj = new JSONObject(XmlString);
            webResponse = jObj.getString("status");
        } catch (ClientProtocolException e) {
            // Log exception
            e.printStackTrace();
            System.out.println(e);
        } catch (IOException e) {
            // Log exception
            e.printStackTrace();
            System.out.println(e);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println(e);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } // onStart ends 

    @Override  
    public void onDestroy() {  
        //Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();  
    } 
}
Cursor c=db.rawQuery("SELECT * FROM student 
                  WHERE id=(SELECT MIN(id) FROM student)", null);
db=LocalService.this.openOrCreateDatabase("StudentDB", Context.MODE_PRIVATE, null);
Cursor c=db.rawQuery("SELECT * FROM student 
                  WHERE id=(SELECT MIN(id) FROM student)", null);