2017-09-07 4 views
0

私の電話の内部ストレージからインテントを使用してPDFファイルを選択しようとしています。 startActivityForResultを呼び出した後、アプリの選択がポップアップします。バックグラウンドで奇妙なことが起こっています。チューザがポップアップするたびに、私がインテントを呼び出した場所からの現在のアクティビティは、以前のアクティビティに戻ります(セレクタが残ります)。また、pdfファイルを選択した後も何も起こりません。startActivityForResultが正しく動作しません

public class Download_pdf extends AppCompatActivity{ 

      @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_exam_tab); 
} 
      @Override 
       public boolean onOptionsItemSelected(MenuItem item) { 

        if (item.getItemId() == R.id.action_add) { 

         Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
         intent.setType("file/*"); 
         startActivityForResult(intent,PICKFILE_REQUEST_CODE); 

        } 
      } 

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

        if (requestCode == PICKFILE_REQUEST_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) { 
      //upload pdf file 
       Uri uri = data.getData(); 
       StorageReference filepath=storageRef.child(uri.getLastPathSegment()); 
     UploadTask uploadTask=filepath.putFile(uri); 
        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
         @Override 
         public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       //File uploaded 
      } 
    } 

このコードは完全に動作していましたが、突然動作しなくなりました。私は何が起こったのか分かりません。助けてください!

+0

をリターンを追加[MCVE]を提供してください。 –

+0

どこでも 'finish()'を呼び出していますか? –

+0

@DavidWasser Nowhere! –

答えて

0

要件は、法でonOptionsItemSelected

サンプル

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if(item.getItemId() == R.id.action_add){ 
      Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
      intent.setType("file/*"); 
      startActivityForResult(intent,1); 

      Toast.makeText(this, "select file", Toast.LENGTH_SHORT).show(); 

      return true; 
     } 
     return false; 
    } 
+0

それは動作します。ありがとうございました! –

関連する問題