Slon747, спасибо!
Как раз реализовал Ваш совет)
Вот изменения:
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
| protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
alertDialog = new AlertDialog.Builder(this);
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 100);
}
});
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
finish();
}
});
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if(!isGpsEnabled()) {
askForGpsLocation();
}
}
//выводит диалоговое окно
private void askForGpsLocation() {
alertDialog.setMessage("Share your location"+(i++));
alertDialog.show();
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//перепроверяем и выводим диалоговое окно еще раз
if(!isGpsEnabled()) {
askForGpsLocation();
}
}
@Override
protected void onResume() {
super.onResume();
Log.d("onResume", "start");
//перепроверяем и выводим диалоговое окно еще раз
if(!isGpsEnabled()) {
askForGpsLocation();
}
Log.d("onResume", "end");
}
@Override
protected void onPause() {
super.onPause();
Log.d("onPause", "start");
Log.d("onPause", "end");
}
//проверяем статус GPS
private boolean isGpsEnabled() {
return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
} |
|
теперь одно и тоже диалоговое окно выводится дважды: 1 при onResume, а второе,по всей видимости,из onCreate.
Что не есть хорошо.
Как это исправить?Как приостановить выполнение приложения,при выводе диалогового окна?
Спасибо