Я новичок в android.I'm создаю приложение, в котором я должен отключить кнопку после ее нажатия и снова включить ее через 5 минут. Таймер обратного отсчета должен продолжаться даже после закрытия приложения. любая помощь приветствуется. Заранее спасибо!Как отключить кнопку после нажатия на кнопку 5 минут в Android
ответ
Вы можете сохранить время в общем предпочтении по следующему коду.
SharedPreferences settings = c.getSharedPreferences(PREFS_NAME, 1);
SharedPreferences.Editor editor = settings.edit();
editor.putString("click_time", your_time);
Когда вам нужно сравнить, просто сравните текущее время со временем, которое вы предпочитаете. Проверьте, не отличается ли разница между временем менее 5 мин.
чтобы получить время от prefernce:
SharedPreferences settings = c.getSharedPreferences(PREFS_NAME, 1);
String storedTime=settings.getString("clic_time", "");
Получить разницы в минуту:
Date current, Date previous;
long diff = current.getTime() - previous.getTime();
long minutes = diff/(60 * 1000);
Чтобы показать таймер, когда приложение поставляется из фона, вы можете получить время от предпочтений и начать таймер с помощью разница между 2 раза.
Мне было лениво написать это, я бы использовал одно и то же решение. Просто сохраните время, когда снова включить кнопку. Используя простой таймер и перестройте его 'onCreate', чтобы закончить в сохраненное время. Нет необходимости использовать Сервис ни в чем. – AxelH
Попробуйте Handler
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
// this will disable your button
yourButton.setEnabled(false);
}
};
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// wait for 5 minutes
handler.postDelayed(runnable, 5*60*1000);
}
});
1) создать службу и поместить код таймера в нем
2) в службе, после того, как ваше время закончил вещать умысел
3) в вашем активность записывает широковещательный приемник и в широковещательный приемник. Включите кнопку снова.
для запуска службы после закрытия приложения смотреть на: How to keep a service running in background even after user quits the app?
для отправки намерения от службы к деятельности взглянуть на: send intent from service to activity
испытывались кодов
1) создание службы:
public class TimeService extends IntentService {
public TimeService() {
super("TimeService");
}
@Override
protected void onHandleIntent(Intent intent) {
//Your Time Code
//broadcast intent in your app
Intent RTReturn = new Intent(MainActivity.RECEIVE);
RTReturn.putExtra("state", "done");
LocalBroadcastManager.getInstance(this).sendBroadcast(RTReturn);
}
2) Ваша деятельность
-create действие Строка
//Your activity will respond to this action String
public static final String RECEIVE = "TIMING";
-create BroadcastManager
private LocalBroadcastManager bManager;
-Создание BroadcastReceiver
private BroadcastReceiver bReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(RECEIVE)) {
String serviceString = intent.getStringExtra("state");
if(serviceString.equals("done"))
// enable your button
btnEnable();
}
}
};
-Положите намерения фильтра в OnCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//make an intent filter
bManager = LocalBroadcastManager.getInstance(this);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(RECEIVE);
bManager.registerReceiver(bReceiver, intentFilter);
}
добавить его в кнопку на мыши
//start time service
Intent intent = new Intent(this,TimeService.class);
startService(intent);
в конце помнить две вещи:
первый -> добавить службу в свой манифест
второй -> незарегистрированный вещательный приемник в OnDestroy()
private long mLastClickTime = 0;
public static final long MAX_CLICK_INTERVAL = 1000; // here you can pass the time interval you want the user to wait for the next click
// and paste the below code on button click
if (SystemClock.elapsedRealtime() - mLastClickTime < MAX_CLICK_INTERVAL) {
return;
}
mLastClickTime = SystemClock.elapsedRealtime();
Не отправляйте только код. Объясните свое решение. – AxelH
- 1. jQuery: Отключить кнопку 10 минут после нажатия
- 2. кнопку Отключить после нажатия
- 3. Отключить кнопку после нажатия
- 4. Android Как отключить положительную кнопку после нажатия
- 5. отключить кнопку формы после нажатия
- 6. Как отключить кнопку отправки после ее нажатия?
- 7. Отключить кнопку за t минут
- 8. Как отключить кнопку отправки после одного нажатия?
- 9. После нажатия на кнопку
- 10. phonegap приложение отключить кнопку после нажатия
- 11. Отключить кнопку выбора после нажатия кнопки отправки
- 12. Отключить кнопку после нажатия кнопки один раз
- 13. Как отключить кнопку после нажатия на нее в OpenERP
- 14. После нажатия кнопки нельзя отключить другую кнопку
- 15. как отключить кнопку в течение 5 минут после попытки входа в систему не удалось в android
- 16. Контактная форма, отключить кнопку отправки после нажатия
- 17. Отключить кнопку после нажатия кнопки jQuery
- 18. Отключить командную кнопку после одного нажатия
- 19. После того, как щелкнуть кнопку «Отключить», нажмите кнопку «Отключить».
- 20. Отключить кнопку в Android
- 21. IE 7 как отключить кнопку после нажатия на нее
- 22. Отключить кнопку в течение X минут
- 23. Отключить главную кнопку, Android
- 24. отключить кнопку отправки после нажатия на нее в codeigniter
- 25. Скрыть кнопку после нажатия
- 26. Как отключить кнопку Android?
- 27. Отключить кнопку после отправки
- 28. изменить JPanel после нажатия на кнопку
- 29. Как активировать дрожание после нажатия на кнопку?
- 30. Как показать кнопку после нажатия на пробел?
Попробуйте использовать обработчик –
@ ρяσѕρєяK будет работать обработчиком, если приложение закрыто? – Mrinmoy
Нет, обработчик остановится при закрытии приложения –