Форум программистов, компьютерный форум CyberForum.ru

SQLite в Service - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как обращаться к кнопке из массива методом switch? http://www.cyberforum.ru/android-dev/thread1196180.html
Всем привет! Создал массив кнопок: Button buttons = new Button; А как обращаться к кнопкам из массива методом switch я не знаю(( Только не надо давать ссылки на книги на озоне. Спасибо!
Android Приложение останавливается сразу после открытия Приложение открывается и сразу has stoped просто пытаюсь присвоить текст TextView package com.example.time; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask; http://www.cyberforum.ru/android-dev/thread1196089.html
Android Посоветуйте программу
Есть разобранный арк файл, в нем есть текстовый файл с массивом заметок каждая из которых открывается в отдельной странице, посоветуйте программу с помощью которой можно создать аналогичный текстовый файл, проще говоря с помощью какой программы можно создать текстовый массив?
Теория по Android Android
Здравствуйте друзья, есть такой вопрос. У параметра Visibility есть такие INVISIBLE и GONE. С INVISIBIL все понятно, прячет элемент, а вот что делает GONE, да типа тоже прячет, но вроде как совсем. В чем преимущество одно параметра перед другим, если оно есть.
Android Часы для Android и ошибка "unfortunately clock has stopped" http://www.cyberforum.ru/android-dev/thread1195962.html
Задали лабораторную по создания приложения часов для андроид. По скольку ни с андройдом ни с явой не работал, пытаюсь разобраться. Написал приложение, но при запуске почему-то пишет "unfortunately clock has stopped". В чём ошибка не понимаю package com.example.clock; import java.util.Timer; import java.util.TimerTask; import java.util.Date; import java.text.DateFormat; import...
Android Задать масштаб canvas Добрый вечер.У меня есть небольшая задумка.Я хочу поместить черный прямоугольник на экран телефона на котором включена камера.Я хочу видеть черный прямоугольник,как показано на картинке.Как бы я не поворачивал телефон я хочу чтобы квадрат оставался на месте.Масштаб экрана 1px.Скажите пожалуйста куда копать и что учитывать в расчетах.Спасибо. подробнее

Показать сообщение отдельно
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
06.06.2014, 17:16  [ТС]     SQLite в Service
Цитата Сообщение от YuraAAA Посмотреть сообщение
NOSC, покажите как Вы подключаете базу
Да собственно все подключается, не могу разобраться с ошибкой. Лог ниже:
Кликните здесь для просмотра всего текста
06-06 15:37:51.048: D/myLogs(14670): onCreate
06-06 15:37:51.048: D/myLogs(14670): onStartCommand
06-06 15:37:51.048: I/System.out(14670): Cell ID = 878078
06-06 15:37:51.058: I/SQLiteAssetHelper(14670): successfully opened database metrotrace.db
06-06 15:37:51.058: D/AndroidRuntime(14670): Shutting down VM
06-06 15:37:51.058: W/dalvikvm(14670): threadid=1: thread exiting with uncaught exception (group=0x40d2e930)
06-06 15:37:51.058: E/AndroidRuntime(14670): FATAL EXCEPTION: main
06-06 15:37:51.058: E/AndroidRuntime(14670): java.lang.RuntimeException: Unable to start service com.site.myservice.BaseStation@40fc7b80 with Intent { cmp=com.site.myservice/.BaseStation }: java.lang.IllegalArgumentException: the bind value at index 1 is null


Вот так сам сервис выглядит:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class BaseStation extends Service {
    final String LOG_TAG = "myLogs";
    String station_name;
    GsmCellLocation location;
    DataBase db;
    Cursor cursor;
    
    public void onCreate() {
        super.onCreate();
        Log.d(LOG_TAG, "onCreate");
        
      }
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "onStartCommand");
        getLocation();
        return super.onStartCommand(intent, flags, startId);
      }
      public void onDestroy() {
            super.onDestroy();
            Log.d(LOG_TAG, "onDestroy");
          }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    
    void getLocation() {
        TelephonyManager tm  = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        location = (GsmCellLocation) tm.getCellLocation();
            Data.now_cellid = location.getCid();
            System.out.println("Cell ID = " + Data.now_cellid);
          simileDo();
    }
    void simileDo(){
        if (Data.now_cellid != Data.old_cellid) {
            choiceDb();
        } else {
            getLocation();
        }
    }
    void choiceDb() {
        db = new DataBase(this);
        cursor = db.doSomething(station_name);
    }
 
}


А вот так Курсор в helper'е :
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public Cursor doSomething(String station) {
        SQLiteDatabase db = getWritableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
        //1. Составляем запрос
        Cursor cursor = getWritableDatabase().rawQuery("SELECT * FROM mts WHERE cellid=?", new String[]{station});
        //2. Курсор должен быть не null и что-то в себе нести
        if (cursor != null && cursor.moveToFirst()) {
            String name = cursor.getString(cursor.getColumnIndex("station"));
            Log.d("Database", name);
            Data.now_station = name;
            
        }
        //3. Курсор обязательно закрываем
        closeCursor(cursor);
        return cursor;
    }
    
    private void closeCursor(Cursor c) {
        if (c != null && !c.isClosed()) {
            c.close();
        }
    }


Добавлено через 1 час 33 минуты
Поменял немного формат запроса, подглядел в программе, которая составляет запросы к базе sqlite, теперь мой класс helper выглядит так:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class DataBase extends SQLiteAssetHelper{
    private static final String DATABASE_NAME = "metrotrace.db";
    private static final int DATABASE_VERSION = 1;
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_LOC = "cellid";
    public static final String COLUMN_ST = "station";
    SQLiteDatabase db = getWritableDatabase();
    public DataBase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
 
 
    }
    public Cursor doSomething(String station) {
        //1. Составляем запрос
        Cursor cursor = getWritableDatabase().rawQuery("SELECT station FROM mts WHERE cellid="+Data.now_cellid+" ORDER BY station ASC", new String[]{station});
        //2. Курсор должен быть не null и что-то в себе нести
        if (cursor != null && cursor.moveToFirst()) {
            String name = cursor.getString(cursor.getColumnIndex("station"));
            Log.d("Database", name);
            Data.now_station = name;
            
        }
        //3. Курсор обязательно закрываем
        closeCursor(cursor);
        return cursor;
    }
    
    private void closeCursor(Cursor c) {
        if (c != null && !c.isClosed()) {
            c.close();
        }
    }
}


Ошибка изменилась:
Кликните здесь для просмотра всего текста
06-06 16:56:57.669: D/myLogs(19811): onCreate
06-06 16:56:57.669: D/myLogs(19811): onStartCommand
06-06 16:56:57.679: I/System.out(19811): Cell ID = 878078
06-06 16:56:57.689: I/SQLiteAssetHelper(19811): successfully opened database metrotrace.db
06-06 16:56:57.699: D/AndroidRuntime(19811): Shutting down VM
06-06 16:56:57.699: W/dalvikvm(19811): threadid=1: thread exiting with uncaught exception (group=0x40d2e930)
06-06 16:56:57.699: E/AndroidRuntime(19811): FATAL EXCEPTION: main
06-06 16:56:57.699: E/AndroidRuntime(19811): java.lang.RuntimeException: Unable to start service com.site.myservice.BaseStation@40fcb328 with Intent { cmp=com.site.myservice/.BaseStation }: java.lang.IllegalArgumentException: the bind value at index 1 is null
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2800)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.access$1900(ActivityThread.java:153)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.os.Looper.loop(Looper.java:137)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.main(ActivityThread.java:5226)
06-06 16:56:57.699: E/AndroidRuntime(19811): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 16:56:57.699: E/AndroidRuntime(19811): at java.lang.reflect.Method.invoke(Method.java:511)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
06-06 16:56:57.699: E/AndroidRuntime(19811): at dalvik.system.NativeStart.main(Native Method)
06-06 16:56:57.699: E/AndroidRuntime(19811): Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.DataBase.doSomething(DataBase.java:24)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.choiceDb(BaseStation.java:55)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.simileDo(BaseStation.java:48)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.getLocation(BaseStation.java:44)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.onStartCommand(BaseStation.java:26)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2783)
06-06 16:56:57.699: E/AndroidRuntime(19811): ... 10 more
 
Текущее время: 09:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru