30/09/2018, 18:51

Callback nào kết thúc app Android?

Cho em hỏi một tý với ạ
Một chương trình có nhiều activity.
vậy khi chương trình kết thúc thì app sẽ gọi phương thức nào ạ ?
vì em muốn khi chương trình kết thúc (tại bất cứ activity nào) thì save một biến vào SharePreference

P/s : có mem nào biết group skype/slack nào trao đổi kiến thức android không ? Cho mình xin với

X viết 21:04 ngày 30/09/2018

Save tại onPause()

caybang viết 20:54 ngày 30/09/2018

khi chương trình kết thúc

thi o ham ondestroy, ban viet xu ly o day nhe.

Thanh Thịnh Đới viết 20:55 ngày 30/09/2018

Em nên hỏi rõ ràng hơn . Màn hình như thế nào , e muốn lưu cái gì .

Activity kết thúc bắt đầu onPause() -> onStop()

Larry Pham viết 21:02 ngày 30/09/2018
  1. Nếu muốn kết thúc tại bất cứ activity nào mà bạn vẫn lưu được vào SharedPreference… thì bạn nên khai báo SharedPreference đó trong Application object.( chính là tên của thẻ tag trong Manifest của bạn đó… Tao class mà extends Application và khai báo nó trong manifest để sử dụng…
  2. sử dụng cái này lưu vào mặc định cho bạn PreferenceManager.getDefaultSharedPreferences()
    ví dụ trong AccountUtils sử dụng đối tượng này lưu thông tin vào, thì lưu vào mặc định trong app của bạn…

Cái này là không thể làm được nhé. Chỉ làm được ở mức tương đối thôi.
Lí do là có một loạt các hoạt động sau bị overlap vào nhau và rất khó để detect:

  • App bị ẩn xuống. Người dùng bấm nút home.
  • Chuyển Activity.
  • App bị người dùng bấm back đến thoát.
  • App bị người dùng kill đi bằng taskmanager.

=> Không biết bài toán cụ thể thì không thể đưa ra được lời khuyên cho vấn đề chung chung khó giải quyết như vậy.

Quân viết 21:00 ngày 30/09/2018

chẳng có callback nào cho biết app bị kết thúc cả, app có thể chết bất cứ lúc nào mà k cần báo trước. Cách tương đối là có thể dùng count reference đếm số activity đã start, mỗi lần activity bị destroy thì giảm đi 1, bạn yên tâm tất cả các hàm callback này đều chạy trên main thread nên k lo race condition, nếu reference <=0 thì save data, tất nhiên cách này chỉ tương đối thôi.

Nguyễn Trương Duy viết 21:05 ngày 30/09/2018

Bài này có thể giúp bạn, từ API 14 trở lên na
http://steveliles.github.io/is_my_android_app_currently_foreground_or_background.html

Bài liên quan
0