当我的应用程序启动并且未启用位置时,系统会要求用户将其启用。我已经使用startActivity(intetnt)
完成了它并且它可以工作,但现在我想让它在用户打开后自动关闭。我知道可以使用StartActivityForResult
完成,但不知道如何。
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent,0x1002);
}
答案 0 :(得分:2)
但现在我希望在用户开启后自动关闭它。我知道可以使用StartActivityForResult完成,但不知道如何
startActivityForResult()
正如姓名所说的那样。它启动活动并让您从中获得一些结果。就这样。
你不能关闭你调用的活动,除非它给你这样的选择(通过期望在Bundle中传递某些参数等)。
答案 1 :(得分:-2)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch (requestCode) {
case 0x1002:
finish();
}
}
答案 2 :(得分:-2)
从第一个Activity调用第二个Activity,使用startActivityForResult()方法
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
如果要发回数据,请在第二个活动中:
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果您不想返回数据:
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();
现在,在第一个Activity类中,为onActivityResult()方法编写以下代码。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult