@amimamoya

Как продолжить работу приложения с того места, которое было до его закрытия?

Изначально в моём приложении всего одна кнопка, при нажатии на которую текст на ней изменяется и появляется TextView с текущим временем и обновляется каждую секунду. Как сделать, чтобы если кнопка была нажата и после приложение закрыто, при следующем запуске текущее время уже отображалось без нажатия кнопки?
Вот код xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_marginLeft="150dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/label2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/but"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="125dp"
        android:text="Начать!"
        android:onClick="butpress"/>

</androidx.appcompat.widget.LinearLayoutCompat>

Код java:
public class MainActivity extends AppCompatActivity {
    TextView label;
    Button but;
    private Handler handler;
    boolean prov = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        but = (Button) findViewById(R.id.but);
        label = (TextView) findViewById(R.id.label2);
        handler = new Handler(){
            public void handleMessage(Message msg){
                String time = new SimpleDateFormat("kk:mm:ss").format(Calendar.getInstance().getTime());
                label.setText(time);
            }
        };
    }

    public void butpress(View view){
        String time = new SimpleDateFormat("YYYY-MM-dd").format(Calendar.getInstance().getTime());
        but.setText("Остановить");
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                while (prov) {
                    handler.sendEmptyMessage(1);
                    try {
                        Thread.sleep(1000);
                    } catch (Exception e) {
                        System.out.println(e);
                    }
                }
            }
        });
        t.start();
    }
}
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
@foonfyrick
Сохраняй время в бд, при запуске бери оттуда значение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы