Android 在结果设置中启动活动

Android 在结果设置中启动活动,android,android-intent,startactivityforresult,Android,Android Intent,Startactivityforresult,当我的应用程序启动且位置未启用时,会要求用户将其打开。我已经使用startActivity(intetnt)完成了它,它可以工作,但现在我希望在用户打开它后自动关闭它。我知道可以使用StartActivityForResult完成,但不知道如何完成 public void onClick(DialogInterface dialogInterface, int i) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_

当我的应用程序启动且位置未启用时,会要求用户将其打开。我已经使用
startActivity(intetnt)
完成了它,它可以工作,但现在我希望在用户打开它后自动关闭它。我知道可以使用
StartActivityForResult
完成,但不知道如何完成

public void onClick(DialogInterface dialogInterface, int i) {
    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);                    
    startActivityForResult(intent,0x1002);
}
但现在我希望它在用户打开后自动关闭。我知道可以用StartActivityForResult完成,但不知道怎么做

startActivityForResult()
完全按照名称执行。它启动活动并让您从中获得一些结果。就这些


您不能关闭您调用的活动,除非它为您提供了这样的选项(即,期望在Bundle等中传递某些参数)。

从第一个活动使用startActivityForResult()方法调用第二个活动

在第二个活动中,如果您想发回数据:

 

    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()方法编写以下代码

 

    Intent returnIntent = new Intent();
    returnIntent.putExtra("result",result);
    setResult(Activity.RESULT_OK,returnIntent);
    finish();



    Intent returnIntent = new Intent();
    setResult(Activity.RESULT_CANCELED, returnIntent);
    finish();



    @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