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

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

27.11.2015, 23:56. Просмотров 387. Ответов 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();
    }     
}
 
 
}
Все дело в том, что при нажатии на кнопку, программа зависает и уже ничего нельзя сделать + позже, после одного цикла, программа вообще перестает работать и зависает. Как это пофиксить? Уже не знаю, как с этим бороться.
http://www.cyberforum.ru/android-dev/thread1244661.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2015, 23:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Зависает программа при нажатии кнопки (Программирование Android):

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

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

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

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

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

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
Привет! Вот еще темы с решениями:

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

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

Перезагрузить родителя при нажатии кнопки Back
При нажатии кнопки Back по стандарту он просто пересылает назад и подгружает...

Alert Dialog закрывается при нажатии кнопки Назад
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());...


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

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

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