2016-06-15 4 views
0

이 2 응용 프로그램 : 첫 번째 응용 프로그램이 사용하는 두 번째를 열 수 있습니다는 배경에

Intent intent = getPackageManager().getLaunchIntentForPackage("com.my.path"); 
startActivity(intent); 

이 잘 작동합니다.

두 번째 앱은 액션이있는 인 텐트를 사용하여 첫 번째 앱을 다시 호출 할 수 있습니다. 예를 들면 다음과 같습니다.

public void call(String number) 
{ 
    Intent myIntent = new Intent(Intent.ACTION_CALL); 
    myIntent.setData(Uri.parse("tel:" + number); 
    startActivity(myIntent); 
} 

그리고 곧 나올 문제가 있습니다. onCreate 메소드의 첫 번째 앱에서 수신 된 인 텐트를 처리하고 있습니다. 첫 번째 앱은 프래그먼트 트랜잭션으로 전환되는 많은 프래그먼트가있는 단일 활동입니다. 두 번째 앱에서 인 텐트를받을 때, 나는 의도에 따라 특정 프래그먼트로 트랜잭션을 만들고 있습니다.

문제는 첫 번째 앱이 백그라운드 (닫음을 의미)에 없을 때 내 의도 처리가 잘 작동한다는 것입니다. 그러나 사용자가 첫 번째 응용 프로그램에서 첫 번째 응용 프로그램을 연 다음 첫 번째 응용 프로그램을 백그라운드에서 열면 사용자가 두 번째 응용 프로그램에서 인 텐트를 호출하면 첫 번째 응용 프로그램이 포 그라운드로 돌아가지만 같은 조각으로 돌아갑니다. 사용자가 두 번째 앱을 시작했을 때, 두 번째 앱에서 전송 된 의도로 사용자의 요청을 기반으로 한 새 프래그먼트를 표시 할 예정이었습니다.

왜 이런 일이 발생하며 어떻게 해결할 수 있습니까?

답변

0

의도를 처리하고 필요한 조각을 맨 위에 가져 오는 OnNewIntent 메서드를 재정 의하여 처리 할 수 ​​있습니다.

+0

그 방법에 대해 알지 못했다고 생각합니다. –