Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
kotketa
0 / 0 / 0
Регистрация: 01.10.2014
Сообщений: 9
1

Зависает программа при нажатии кнопки

27.11.2015, 23:56. Просмотров 402. Ответов 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.example.steamtradesupporter;
 
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.concurrent.TimeUnit;
 
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;
 
public class MainActivity extends Activity {
    
    Method dataConnSwitchmethod_ON;
    Method dataConnSwitchmethod_OFF;
    Class telephonyManagerClass;
    Object ITelephonyStub;
    Class ITelephonyClass;
    Button butt;
    TextView tView;
    
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 
butt = (Button) findViewById(R.id.but);
tView = (TextView)findViewById(R.id.tv);
 
butt.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        tView.setText("Программа запущена");
        StartTrade();
    }
});
}
 
private void StartTrade() {
    int n = 1;
    while (n == 1) {
        mobiledataenable(true);
        try {
            TimeUnit.SECONDS.sleep(120);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
        mobiledataenable(false);
        try {
              TimeUnit.SECONDS.sleep(10);
            } catch (InterruptedException e) {
              e.printStackTrace();
            }
    }
}
 
private void mobiledataenable(boolean enabled) {
 
try { 
        final ConnectivityManager conman = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        final Class<?> conmanClass = Class.forName(conman.getClass().getName());
        final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
        iConnectivityManagerField.setAccessible(true);
        final Object iConnectivityManager = iConnectivityManagerField.get(conman);
        final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
        final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
        setMobileDataEnabledMethod.setAccessible(true);
        setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }     
}
 
 
}
Все дело в том, что при нажатии на кнопку, программа зависает и уже ничего нельзя сделать + позже, после одного цикла, программа вообще перестает работать и зависает. Как это пофиксить? Уже не знаю, как с этим бороться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2015, 23:56
Ответы с готовыми решениями:

Вылет при нажатии кнопки
Доброго времени суток. Опять непонятная ошибка, при нажатии кнопки приложение...

Убить приложение при нажатии кнопки
Здравствуйте. Нужно сделать кнопку выхода из приложения, но так, чтобы оно...

Дизайн кнопки при наведении, нажатии
Создал в папке drawable папку mybutton, создал там XML файл use.xml: &lt;?xml...

Ошибка при нажатии кнопки button
Добрый день, прошу прощения за такой глупый вопрос. Только начал разбираться, и...

Считывание чисел при нажатии на кнопки
Здравствуйте . Пишу калькулятор под Android на Java . На экране есть кнопки...

2
Velesthau
524 / 426 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
28.11.2015, 00:29 2
Цитата Сообщение от kotketa Посмотреть сообщение
Как это пофиксить?
Не делать бесконечный цикл.
0
kotketa
0 / 0 / 0
Регистрация: 01.10.2014
Сообщений: 9
28.11.2015, 00:58  [ТС] 3
Velesthau, так мне в любом случае нужен бесконечный цикл. Ну или по крайней мере, до того, пока не нажмут другую кнопку, которую я еще не сделал
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2015, 00:58

Смена надписи при нажатии кнопки XML
Добрый день. Пишу небольшую программку в Android Studio 1.0. Есть кнопка,...

Добавить символ в EditText при нажатии кнопки
Программа при нажатии на Button, должна выводить в EditText символ, например...

Изменение даты в textView при нажатии на кнопки
Подскажите,как менять дату с помощью кнопок (предыдущая,следующая) или выбирать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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