AlertDialog
我读过不同的帖子,因为它阻塞了 UI ,所以无法等待用户在显示时采取行动。
但是,Facebook
诸如显示Gps 之类的应用程序当前已被禁用。你想启用gps吗?警报对话框并等待用户按是/否。我认为可以使用 2 种不同的活动,第一个仅包含 gps 警报对话框,但这似乎不正确,并且绝对不是 facebook 这样做的方式。
谁能告诉我如何实现这一目标?
这是我的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
InitializeComponents();
EnableGPSIfPossible();
ListAsync lAsync = new ListAsync(this);
lAsync .execute();
}
private void EnableGPSIfPossible()
{
final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
buildAlertMessageNoGps();
}
}
private void buildAlertMessageNoGps() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Yout GPS seems to be disabled, do you want to enable it?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
dialog.cancel();
}
});
final AlertDialog alert = builder.create();
alert.show();
}
因此,在我的代码中,AsynTask
无需等待用户激活 gps 即可立即启动。(这是正常行为)
谢谢!