tôi có thể tiếp cận vấn đề theo một cách sai ..onActivityResult luôn trả về 0 (RESULT_CANCELED) khi gọi thiết lập
Những gì tôi đang làm là hiển thị một thông điệp cảnh báo khi không có kết nối internet và "ok" nút dẫn người dùng đến cài đặt wifi để bật internet. Những gì tôi muốn các ứng dụng để làm, khi người dùng quay trở lại nó sau khi thay đổi (hoặc không) các thiết lập internet là để tải lại các ứng dụng hoặc hoạt động mà nó được.
Đối với điều này tôi đang làm cuộc gọi sau đây cho nút "ok":
static void startAct(Activity ctxt)
{
ctxt.startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), WIFI_SETTINGS);
}
trên lớp của hoạt động, nơi mà thông điệp này được thể hiện tôi có như sau:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == WIFI_SETTINGS && resultCode == RESULT_OK)
{
this.finish();
Intent myIntent = new Intent(this, MyActivity.class);
startActivity(myIntent);
}
}
nhưng resultCode luôn là 0, onActivityResult được gọi ngay sau khi nhấn nút "ok".
Tôi có nên tiếp cận vấn đề này một cách khác nhau không? Làm cách nào để tải lại/làm mới ứng dụng của tôi khi người dùng quay lại từ cài đặt wifi?
Tôi đã kiểm tra các câu trả lời tương tự nhưng dường như họ sử dụng một hoạt động trong cùng một ứng dụng, để họ có thể gọi set_result(...)
, nhưng tôi không thể làm điều đó tại đây.
cảm ơn!
Tại sao không chỉ kiểm tra 'onActivityResult', nếu wifi hiện đang bật. Bất kể giá trị nó trả về là bao nhiêu. – Doomsknight
Tôi có thể làm điều đó, nhưng onActivityResult được gọi ngay lập tức sau khi tôi nhấn nút "ok", vì vậy người dùng sẽ không có thời gian để thay đổi cài đặt trước khi nó được gọi. – marimaf
Nút ok nào? Tôi nghĩ bạn có nghĩa là ok trên màn hình cài đặt Wifi. Mã requestCode có trả về giống như WIFI_SETTINGS không? – Doomsknight