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
Run Code Online (Sandbox Code Playgroud)
启动一个Activity蒙山的singleTask调用发射方式startActivityForResult(intent, requestCode)回报马上取消的结果.您可以在调试器中看到它onActivityResult()甚至在系统设置Activity启动之前调用.
作为一种快速解决方法,我建议使用一个标志来指示是否Activity调用了设置.喜欢
设置一面旗帜
private boolean flag = false;
Run Code Online (Sandbox Code Playgroud)使用startActivity()的isteadstartActivityForResult()
@Override
public void onClick(DialogInterface arg0, int arg1) {
startActivity(new Intent(Settings.ACTION_SETTINGS));
flag = true;
}
Run Code Online (Sandbox Code Playgroud)检查国旗 onResume()
@Override
protected void onResume(){
super.onResume();
if (flag) {
startActivity(new Intent(this, MainActivity.class));
finish();
}
}
Run Code Online (Sandbox Code Playgroud)启动设置意图:
startActivity(new Intent(Settings.ACTION_SETTINGS));
Run Code Online (Sandbox Code Playgroud)
并在方法中获取当前的ActivityonResume():
public void onResume(){
super.onResume();
// Do your work
}
Run Code Online (Sandbox Code Playgroud)
从设置屏幕返回后,您的onResume()方法将被调用,您可以在此处获取您的位置。
| 归档时间: |
|
| 查看次数: |
3330 次 |
| 最近记录: |