0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 25

Установление минимального срока действия пароля

25.03.2017, 18:44. Показов 1512. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день!
Нужно реализовать установление минимального срока действия пароля, при выборе checkboxа.При нажатии кнопки приложение крашится
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.example.android_39_sqliteregistrationsys;
 
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
import android.text.TextUtils;
import android.widget.*;
import com.example.android_39_sqliteregistrationsys.DBHelper;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
 
 
public class RegistrationActivity extends Activity implements OnClickListener {
    final String LOG_TAG = "myLogs";
    int i1, i2;
 
    TextView tVRegTitle;
    EditText eTLoginReg, eTPasswordReg;
    Button btnOk,btnSettings;
    CheckBox cbTimer;
 
    DBHelper dbHelper;
    SQLiteDatabase db;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registration);
 
        eTLoginReg = (EditText) findViewById(R.id.eTLoginReg);
        eTPasswordReg = (EditText) findViewById(R.id.eTPasswordReg);
        tVRegTitle = (TextView) findViewById(R.id.tVRegTitle);
 
        btnOk = (Button) findViewById(R.id.btnOk);
        btnOk.setOnClickListener(this);
        
        cbTimer=(CheckBox)findViewById(R.id.cBTimer);
 
        dbHelper = new DBHelper(this);
    }
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
 
        // object for data
        ContentValues cv = new ContentValues();
 
        // gettin data from EditTexts
        String login = eTLoginReg.getText().toString().toLowerCase();
        String password = eTPasswordReg.getText().toString();
        int pwd = password.length();
        String selection = null;
        String[] selectionArgs = null;
 
        final String PASSWORD_PATTERN="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{3,9})";
        final Pattern pattern=Pattern.compile(PASSWORD_PATTERN);
        final Matcher matcher=pattern.matcher(password);
 
        Timer timer=new Timer();
 
 
 
 
        Cursor c = null;
 
        // conncting to the DB
        db = dbHelper.getWritableDatabase();
 
        selection = "login = ?";
        selectionArgs = new String[]{login};
 
        c = db.query("sqliteregistrationsys", null, selection, selectionArgs, null, null,
                null);
        switch (v.getId()) {
            case R.id.btnOk:
                if ((login.equalsIgnoreCase("")) || (password.equalsIgnoreCase(""))) {
                    tVRegTitle.setText("Заполните все поля!");
                    tVRegTitle.setTextColor(getResources().getColor(R.color.opaque_red));
                } else {
                    if (c != null && c.moveToFirst()) {
                        tVRegTitle.setText("Логин " + login + " уже занят! Придумайте другой.");
                        tVRegTitle.setTextColor(getResources().getColor(R.color.opaque_red));
                        Log.d(LOG_TAG, "Index of the Login column is " + c.getColumnIndex("login"));
 
                    } else {
                         if (cbTimer.isChecked()){
                            if (timer!=null){timer.cancel();}
                            Log.d(LOG_TAG, "--- Insert in mytable: ---");
                            // preparing data for pasting: key + value
                            cv.put("login", login);
                            cv.put("password", password);
                            // pasting row and getting its ID
                            long rowID = db.insert("sqliteregistrationsys", null, cv);
                            Log.d(LOG_TAG, "row inserted, ID = " + rowID);
                            Intent intenti = new Intent(this, AuthorizationMainActivity.class);
                            startActivity(intenti);
                            TimerTask mTimerTask=new TimerTask() {
                                @Override
                                public void run() {
                                    Log.d(LOG_TAG, "--- Delete from mytable: ---");
                                    int delCount = db.delete("sqliteregistrationsys", "ID = " + rowID, null);
                                    Log.d(LOG_TAG, "deleted rows count = " + delCount);
                                    Toast toast = Toast.makeText(getApplicationContext(), "Пароль удален, пройдите процедуру регистрации заново",
                                            Toast.LENGTH_SHORT);
                                    toast.show();
                                }
                            };
                            timer.schedule(mTimerTask,5000);
                        }
                        }
                    break;
                }
                dbHelper.close();
 
            }
 
            }
 
 
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2017, 18:44
Ответы с готовыми решениями:

Изменение максимального срока действия пароля
Всем добрый день. Панель управления - Администрирование - Локальная политика безопасности далее Политики учётных записей -...

Подключение к JDBC Connection Pools / установление пароля MySQL
Доброго времени суток! Помогите, пожалуйста, решить проблему. Я пытаюсь соединить проект jsp с базой MySQL. Для этого надо настроить...

Уведомление о истечении срока действия
Привет всем! В общем делаю программу Учет сертификатов ЭЦП, есть таблица DBGrid, база данных на акцесе. Имеется столбец наименование...

6
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
25.03.2017, 18:56
С какой ошибкой крашится? На какой строке?
0
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 25
25.03.2017, 21:18  [ТС]
152 строка

Добавлено через 1 минуту
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Timer was canceled
at java.util.Timer.scheduleImpl(Timer.java: 561)
at java.util.Timer.schedule(Timer.java:459)
at com.example.android_39_sqliteregistratio nsys.RegistrationActivity.onClick(Regist rationActivity.java:152)
at android.view.View.performClick(View.java :4240)
at android.view.View$PerformClick.run(View. java:17721)
at android.os.Handler.handleCallback(Handle r.java:730)
at android.os.Handler.dispatchMessage(Handl er.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(Activity Thread.java:5103)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:525)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

152 строка
0
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
25.03.2017, 21:37
Лучший ответ Сообщение было отмечено neofral как решение

Решение

У вас там всего 132 строки)

В общем, вы закрываете таймер
Java
1
timer.cancel();
а потом пытаетесь снова его запустить
Java
1
timer.schedule(mTimerTask,5000);
Так нельзя. Нужно создавать новый таймер:
Java
1
2
timer = new Timer();
timer.schedule(mTimerTask,5000);
Я думаю, дело в этом.

http://stackoverflow.com/quest... e-canceled

Не по теме:

Кстати, решение я нашёл, просто скопировав вашу ошибку в гугл.

1
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 25
26.03.2017, 13:24  [ТС]
Цитата Сообщение от Kir-malishev Посмотреть сообщение
У вас там всего 132 строки)

В общем, вы закрываете таймер
Java
1
timer.cancel();
а потом пытаетесь снова его запустить
Java
1
timer.schedule(mTimerTask,5000);
Так нельзя. Нужно создавать новый таймер:
Java
1
2
timer = new Timer();
timer.schedule(mTimerTask,5000);
Я думаю, дело в этом.

http://stackoverflow.com/quest... e-canceled

Не по теме:

Кстати, решение я нашёл, просто скопировав вашу ошибку в гугл.

Таймер стал работать, но по окончании его работы происходит удаление из бд записи и приложение крашится
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
26.03.2017, 13:28
Цитата Сообщение от neofral Посмотреть сообщение
и приложение крашится
тебе ведь уже раз написали
Цитата Сообщение от Kir-malishev Посмотреть сообщение
С какой ошибкой крашится? На какой строке?
каждый раз надо спрашивать "какая ошибки, где лог" и т.д.?
0
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 25
26.03.2017, 13:56  [ТС]
Цитата Сообщение от Паблито Посмотреть сообщение
тебе ведь уже раз написали

каждый раз надо спрашивать "какая ошибки, где лог" и т.д.?
FATAL EXCEPTION: Timer-0
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:1 97)
at android.os.Handler.<init>(Handler.java:1 11)
at android.widget.Toast$TN.<init>(Toast.jav a:324)
at android.widget.Toast.<init>(Toast.java:9 1)
at android.widget.Toast.makeText(Toast.java :238)
at com.example.android_39_sqliteregistratio nsys.RegistrationActivity$1.run(Registra tionActivity.java:115)
at java.util.Timer$TimerImpl.run(Timer.java :284)

Добавлено через 20 минут
все исправил проблему.Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2017, 13:56
Помогаю со студенческими работами здесь

Проверка срока действия сертификата безопасности
Добрый день (вечер)! Товарищи помогите с данной проблемой, есть файл в нем зашифрован текст. Программа которая использует данный файл не...

напоминание о истечении срока действия сертификата пользователя
навыписывали через CA сертификаты пользователям. Как бы теперь напомнить себе или им, что пора обновить например за месяц до истечения...

Вывод отсчета времени (ограничение срока действия контента)
Привет,всем гуру программирования) Хелп ми. Трабл заключается в следующем, есть сайт где пользователи могут загрузить свой баннер, баннер...

Что фактически происходит при продлении срока действия ид-файла?
Добрый день Что фактически происходит при продлении срока действия ид-файла? Продляю срок действия ид-файлов, при этом видно в АК,...

Изменить срок действия запроса пароля
Всем привет) Есть такой вопрос. Я хочу создать директорию, доступ к которой будет только у рута или только у текущего пользователя по...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru