2017-09-27 14 views
0

私のアプリが起動し、場所が有効になっていないときに、ユーザに電源を入れるように求められます。私はstartActivity(intetnt)を使ってやっていますが、それはうまくいきますが、今度は、ユーザーがそれをオンにした後に自動的に閉じたいと思っています。私はそれがStartActivityForResultを使用して行うことができることを知っているが、どのようにわからない。設定の結果のアクティビティを開始

public void onClick(DialogInterface dialogInterface, int i) { 
    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);      
    startActivityForResult(intent,0x1002); 
} 

答えて

2

が、今私は、ユーザーがオンになった後、それが自動的に閉じられたいです。私はそれがStartActivityForResultを使用して行うことができる知っているが、

startActivityForResult()は名前が伝えまさにどうするか知りません。アクティビティを開始し、そこからいくつかの結果を得ることができます。それで全部です。

あなたがそのようなオプションを提供しない限り(つまり、特定の引数がバンドルなどで渡されることを期待して)、あなたが起動したアクティビティを閉じることはできません。あなたが戻ってデータを送信する場合は、あなたの第一のアクティビティから

-1
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch (requestCode) { 
     case 0x1002: 
      finish(); 
    } 
} 
-1

は、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(); 

第1アクティビティクラスで、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 

関連する問題