Dev*_*ath 4 android android-alertdialog android-activity
public void open(){
        final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setMessage(getApplicationContext().getResources().getString(R.string.searchFilterLocationMessage));
        alertDialogBuilder.setPositiveButton(R.string.Ok, 
                new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                /*Intent intent = new Intent(Settings.ACTION_SETTINGS) ;
                this.startActivity(intent);
                 */
                startActivityForResult(new Intent(Settings.ACTION_SETTINGS), 0);
            }
        });
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 0) {
            Intent intent = getIntent();
        finish();
        startActivity(intent);
        }
    }//onActivityResult
启动一个Activity蒙山的singleTask调用发射方式startActivityForResult(intent, requestCode)回报马上取消的结果.您可以在调试器中看到它onActivityResult()甚至在系统设置Activity启动之前调用.
作为一种快速解决方法,我建议使用一个标志来指示是否Activity调用了设置.喜欢
设置一面旗帜
private boolean flag = false;
使用startActivity()的isteadstartActivityForResult()
@Override
public void onClick(DialogInterface arg0, int arg1) {
    startActivity(new Intent(Settings.ACTION_SETTINGS));
    flag = true;
}
检查国旗 onResume()
@Override
protected void onResume(){
super.onResume();
    if (flag) {
        startActivity(new Intent(this, MainActivity.class));
        finish();
    }
}
启动设置意图:
startActivity(new Intent(Settings.ACTION_SETTINGS));
并在方法中获取当前的ActivityonResume():
public void onResume(){
    super.onResume();
    // Do your work
}
从设置屏幕返回后,您的onResume()方法将被调用,您可以在此处获取您的位置。
| 归档时间: | 
 | 
| 查看次数: | 3330 次 | 
| 最近记录: |