2014-09-11 2 views
1

아래의 코드는 목록보기 항목에 대해 현재 사용중인 코드이므로 탭하면 이메일 작성기가 실행됩니다. 그러나 메시지를 보낸 후에는 다시 내 앱으로 돌아 가지 않습니다. 전자 메일을 보낸 후 어떻게이 응용 프로그램으로 돌아갈 수 있습니까? 또한 누구든지이 일을하는 더 좋은 방법이 있다면 알려 주시기 바랍니다.이메일을 보낸 후 앱으로 돌아 가기

모든 도움을 주실 수 있습니다.

if(position == 7) { 
Log.i("Send email", ""); 

String[] TO = {"[email protected]"}; 
Intent emailIntent = new Intent(Intent.ACTION_SEND); 
emailIntent.setData(Uri.parse("mailto:[email protected]")); 
emailIntent.setType("text/plain"); 


emailIntent.putExtra(Intent.EXTRA_EMAIL, TO); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here"); 

try { 
    startActivity(Intent.createChooser(emailIntent, "Send mail...")); 
    finish(); 
    Log.i("Finished sending email...", ""); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(MainActivity.this, 
      "There is no email client installed.", Toast.LENGTH_SHORT).show(); 
} 
} 
+0

다음과 같이 사용할 수 있다고 생각합니다. Intent.setFlags (Intent.FLAG_ACTIVITY_FORWARD_RESULT) - 일단 setResult가 호출되면 포커스를 이전 액티비티로 되돌립니다. – LokiSinclair

+0

어디에서 코드를 작성해야합니까? – MacaronLover

+0

보내기 전에 – Dimitri

답변

3

코드는 javamail API를 사용하지 않고 사용자의 기기에 설치된 이메일 클라이언트 중 하나를 사용합니다. 따라서 사용자는 인 텐트의 EXTRA_TEXT 부분에 지정된 메일을 샌드 엔드 1 개를 선택하게됩니다. 이 부분에서;

try { 
        startActivity(Intent.createChooser(emailIntent, "Send mail...")); 
        finish(); 
        Log.i("Finished sending email...", ""); 
       } catch (android.content.ActivityNotFoundException ex) { 
        Toast.makeText(MainActivity.this, 
          "There is no email client installed.", Toast.LENGTH_SHORT).show(); 
       } 

코드에서 'finish()'메소드를 삭제하면됩니다. 이렇게하면 메일이 처리 될 때 뒤로 버튼을 누른 후 사용자가 응용 프로그램으로 돌아갈 수 있습니다. finish() 메서드는 사용자가 최소한의 전력 소비를 위해 장치에서 특정 옵션을 구성하면 onStop() 및 심지어 onDetach() 메서드를 호출하는 활동을 종료합니다.

+0

Brilliant! 문제 해결됨. 고맙습니다. – MacaronLover

2

전자 메일 의도로 새로운 활동을 시작한 직후 활동을 끝내지 마십시오. finish() 호출을 제거하십시오. 그러면 문제가 해결 될 것입니다. 이메일을 보내면 이메일 활동이 삭제되고 이전 활동이 표시됩니다.

+0

나는 그것을했다. 위에서 볼 수 있듯이 첫 번째 대답이 확인되었습니다. – MacaronLover

1

try {...}에서 호출 한 finish() 메서드는 이전 코드가 실행 된 직후에 활동이 중지되므로 응용 프로그램이 종료됩니다. 이를 해결하려면 finish() 메서드를 제거하거나 주석 처리하십시오.

+0

이미 완료했습니다. 위에서 볼 수 있듯이 첫 번째 대답이 확인되었습니다. – MacaronLover

+0

@Arnold Tagne, 제안서를 토의 한 응답자에게 공개하지 않습니다. prochainement je te chiba 레 점. – larrytech

관련 문제