首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用后台服务将cell设置为静默状态

使用后台服务将cell设置为静默状态
EN

Stack Overflow用户
提问于 2012-11-11 12:18:12
回答 1查看 145关注 0票数 0

所以我将我的当前位置与我存储在database.Everything中的位置进行了比较,虽然运行正常,但是当我使用模拟器发送位置时,我无法使我的手机处于静默状态control.Logcat表示光标是OutOfBounds

这是我的代码

代码语言:javascript
运行
复制
                            Cursor cur=null;
            cur=y.rawQuery("SELECT longitude FROM data",null);
            cur.moveToFirst();
            cr=y.rawQuery("SELECT latitude FROM data",null);
            cr.moveToFirst();
            while(!cr.isAfterLast()) {

                arlist.add(cr.getDouble(cr.getColumnIndex("latitude")));
                cr.moveToNext();
                }
            while(!cur.isAfterLast()) {

                arrylist.add(cr.getDouble(cr.getColumnIndex("longitude")));
                cur.moveToNext();
                }
            for(int i=0;i<arlist.size();i++){
                Location locB = new Location("point B");
                locB.setLatitude(arlist.get(i));
                locB.setLongitude(arrylist.get(i));
                float distance=loc.distanceTo(locB);
                if(distance<5){
                    ((AudioManager) getSystemService(AUDIO_SERVICE))
                      .setRingerMode(AudioManager.RINGER_MODE_SILENT);
                }
                else{
                    ((AudioManager) getSystemService(AUDIO_SERVICE))
                      .setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
                }

            }

这是我的日志

代码语言:javascript
运行
复制
11-11 09:45:16.528: E/AndroidRuntime(692): FATAL EXCEPTION: main
11-11 09:45:16.528: E/AndroidRuntime(692): android.database.CursorIndexOutOfBoundsException: Index 20 requested, with a size of 20
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.database.AbstractCursor.checkPosition(AbstractCursor.java:418)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.database.AbstractWindowedCursor.getDouble(AbstractWindowedCursor.java:86)
11-11 09:45:16.528: E/AndroidRuntime(692):  at com.example.alert.service$MyLocationListener.onLocationChanged(service.java:90)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:237)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:170)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:186)
11-11 09:45:16.528: E/AndroidRuntime(692):  at  android.os.Handler.dispatchMessage(Handler.java:99)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.os.Looper.loop(Looper.java:137)
11-11 09:45:16.528: E/AndroidRuntime(692):  at android.app.ActivityThread.main(ActivityThread.java:4745)
11-11 09:45:16.528: E/AndroidRuntime(692):  at java.lang.reflect.Method.invokeNative(Native Method)
11-11 09:45:16.528: E/AndroidRuntime(692):  at java.lang.reflect.Method.invoke(Method.java:511)
11-11 09:45:16.528: E/AndroidRuntime(692):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-11 09:45:16.528: E/AndroidRuntime(692):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-11 09:45:16.528: E/AndroidRuntime(692):  at dalvik.system.NativeStart.main(Native Method)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-11 12:22:48

我认为问题出在这个循环中,在这个循环中,您正在对cur进行循环,但试图从cr检索

代码语言:javascript
运行
复制
while(!cur.isAfterLast()) {
    arrylist.add(cr.getDouble(cr.getColumnIndex("longitude")));
    cur.moveToNext();
}

它可能应该是:

代码语言:javascript
运行
复制
while(!cur.isAfterLast()) {
    arrylist.add(cur.getDouble(cur.getColumnIndex("longitude")));
    cur.moveToNext();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13328533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档