Java Android在服务类中使用数据库

Java Android在服务类中使用数据库,java,android,database,service,Java,Android,Database,Service,我想在我的服务类中使用数据库,但我的应用程序已崩溃 我真的不知道为什么 我的数据库在另一项活动中运行良好 我想是因为我的科瑟尔 08-13 11:54:18.244: E/jdwp(2898): Failed sending reply to debugger: Broken pipe 08-13 11:54:18.540: E/AndroidRuntime(2927): FATAL EXCEPTION: main 08-13 11:54:18.540

我想在我的服务类中使用数据库,但我的应用程序已崩溃 我真的不知道为什么 我的数据库在另一项活动中运行良好 我想是因为我的科瑟尔

   08-13 11:54:18.244: E/jdwp(2898):                Failed sending reply to debugger: Broken pipe
08-13 11:54:18.540: E/AndroidRuntime(2927):     FATAL EXCEPTION: main
08-13 11:54:18.540: E/AndroidRuntime(2927):     java.lang.RuntimeException: Unable to create service arad.faleroozane.MyService: java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2539)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.app.ActivityThread.access$1600(ActivityThread.java:141)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.os.Looper.loop(Looper.java:137)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.app.ActivityThread.main(ActivityThread.java:5041)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at java.lang.reflect.Method.invokeNative(Native Method)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at java.lang.reflect.Method.invoke(Method.java:511)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at dalvik.system.NativeStart.main(Native Method)
08-13 11:54:18.540: E/AndroidRuntime(2927):     Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
08-13 11:54:18.540: E/AndroidRuntime(2927):     at java.util.ArrayList.get(ArrayList.java:306)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at arad.faleroozane.Database.showfal(Database.java:161)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at arad.faleroozane.MyService.onCreate(MyService.java:70)
08-13 11:54:18.540: E/AndroidRuntime(2927):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2529)
08-13 11:54:18.540: E/AndroidRuntime(2927):     ... 10 more
08-13 11:59:18.648: E/InputDispatcher(476):     channel '534822c0 arad.faleroozane/arad.faleroozane.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
这是我在数据库类中的代码: 我的数组列表在另一项活动中效果良好,它是stronge:

    public void showfal() {

    G.todaydate = new SimpleDateFormat("yyy-MM-dd").format(new Date());
    String today = G.todaydate;
    Cursor cu = mydb.rawQuery("SELECT * FROM fal WHERE startdate like  '%" + today + "" + "%'  order by id ", null);

    while (cu != null && cu.moveToNext()) {

        G.farvardin.add(cu.getString(cu.getColumnIndex("farvardin")) + "");
        G.ordibehesht.add(cu.getString(cu.getColumnIndex("ordibehesht")) + "");
        G.khordad.add(cu.getString(cu.getColumnIndex("khordad")) + "");
        G.tir.add(cu.getString(cu.getColumnIndex("tir")) + "");
        G.mordad.add(cu.getString(cu.getColumnIndex("mordad")) + "");
        G.shahrivar.add(cu.getString(cu.getColumnIndex("shahrivar")) + "");
        G.mehr.add(cu.getString(cu.getColumnIndex("mehr")) + "");
        G.aban.add(cu.getString(cu.getColumnIndex("aban")) + "");
        G.azar.add(cu.getString(cu.getColumnIndex("azar")) + "");
        G.dey.add(cu.getString(cu.getColumnIndex("dey")) + "");
        G.bahman.add(cu.getString(cu.getColumnIndex("bahman")) + "");
        G.esfand.add(cu.getString(cu.getColumnIndex("esfand")) + "");

    }

    G.far = G.farvardin.get(G.farvardin.size() - 1);
    G.ord = G.ordibehesht.get(G.ordibehesht.size() - 1);
    G.kho = G.khordad.get(G.khordad.size() - 1);
    G.tirr = G.tir.get(G.tir.size() - 1);
    G.mor = G.mordad.get(G.mordad.size() - 1);
    G.sha = G.shahrivar.get(G.shahrivar.size() - 1);
    G.meh = G.mehr.get(G.mehr.size() - 1);
    G.aba = G.aban.get(G.aban.size() - 1);
    G.aza = G.azar.get(G.azar.size() - 1);
    G.deyy = G.dey.get(G.dey.size() - 1);
    G.bah = G.bahman.get(G.bahman.size() - 1);
    G.esf = G.esfand.get(G.esfand.size() - 1);

    cu.close();
}

哈迪,因为你还没有上传你的代码,所以不可能清楚地回答你的问题,但会尽力帮助你

例外情况是,在您的服务中,您使用的是Array/ArrayList,并且您尝试访问的索引大于数组的大小。 例外情况是,您的数组大小为0且索引为

好的,通过看到你的代码,你会发现下面的错误

G.far = G.farvardin.get(G.farvardin.size() - 1);
原因是G.farvardin.size()的大小为0,因此0-1=-1这就是为什么要对数组进行异常检查