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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Валерий Губин
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 9
#1

Как вынести подключение к БД в отдельный поток? - Android

04.03.2016, 10:25. Просмотров 216. Ответов 2
Метки нет (Все метки)

Как вынести подключение бд в отдельный поток???Вот код программы:
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
48
49
50
51
52
53
54
55
56
57
import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.widget.Button;
import android.widget.TextView;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class MainActivity extends Activity {
 
    TextView textView;
    Button button;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        textView = (TextView) findViewById(R.id.textView);
        button = (Button) findViewById(R.id.button);
 
        button.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
 
                try {
                    Connection conn = null;
                    String url = "jdbc:jtds:sqlserver://localhost:.../databaseName=master";
                    String name = "...";
                    String password = "...";
 
                    try {
                        Class.forName("net.sourceforge.jtds.jdbc.Driver");
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    }
 
                    try {
                        conn = DriverManager.getConnection(url, name, password);
                        textView.setText("я подключился");
                    } catch (SQLException e) {
                        e.printStackTrace();
                        textView.setText("какой-то косяк");
                    }
 
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
 
        });
    }
}
Добавлено через 1 минуту
Вот что она выдает на выходе:
Кликните здесь для просмотра всего текста
03-04 08:59:28.556 28929-28929/com.example.ls.connection_ms_sql W/System.err: android.os.NetworkOnMainThreadException
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:418)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.net.InetAddress.getByName(InetAddress.java:305)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.net.InetSocketAddress.<init>(InetSocketAddress.java:105)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.net.InetSocketAddress.<init>(InetSocketAddress.java:90)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:279)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:251)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:331)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:179)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:213)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at com.example.ls.connection_ms_sql.MainActivity$1.onClick(MainActivity.java:43)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.view.View.performClick(View.java:4770)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.view.View$PerformClick.run(View.java:19801)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.os.Handler.handleCallback(Handler.java:739)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.os.Looper.loop(Looper.java:135)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5261)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.lang.reflect.Method.invoke(Native Method)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at java.lang.reflect.Method.invoke(Method.java:372)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:939)
03-04 08:59:28.568 28929-28929/com.example.ls.connection_ms_sql W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:734)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2016, 10:25     Как вынести подключение к БД в отдельный поток?
Посмотрите здесь:

Android Хочу вынести функцию в другой файл
Android Вынести метод в отдельный класс
Android Вынести классы ядра в библиотеки
Как правильно вывести код в отдельный модуль Android
Android Работа с VIEW объектами из TaskAsync вынесенного в отдельный файл
Android Нажатие на отдельный элемент Canvas
Как записать аудио поток в файл Android
Android UiThread, как вынести процесс из главного потока?
Android Получить отдельный кадр с камеры
Запись лога в отдельный файл Android
Android Как отформатировать текстовый поток
Android Как получить стерео-звук с выхода аудио-микшера или музыкальный поток?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
04.03.2016, 10:47     Как вынести подключение к БД в отдельный поток? #2
Валерий Губин,
-вбиваем в поисковик "asynctask";
-изучаем информацию по первым ссылкам;
-переписываем свой код.
Паблито
2240 / 1813 / 564
Регистрация: 12.05.2014
Сообщений: 6,456
Завершенные тесты: 1
04.03.2016, 16:13     Как вынести подключение к БД в отдельный поток? #3
Вася, я тебе отписал в соседней теме, ты хоть бы зашел туда, отписался о прогрессе
и код на форум помещай в теги, 21-й век на дворе
Yandex
Объявления
04.03.2016, 16:13     Как вынести подключение к БД в отдельный поток?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru