마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미 실행된 앱이 있을 경우 문의 드립니다.

0 추천

앱이 기본적으로 intro activity에서 실행을 합니다.

 

        <activity
            android:name=".Intro"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
                
            </intent-filter>
        </activity>
        <activity
            android:name=".WebStart">
            <intent-filter>
		<action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT" />
    		<category android:name="android.intent.category.BROWSABLE" />
    		<data  android:scheme="link"/>
            </intent-filter>
        </activity>

그런데 모바일웹을 실행하여 웹에서 scheme의 link값을 비교하여 view페이지인 webStart 액티비티를 호출합니다.

webStart에서는 다시 인테트를 이용하여 하기와 같이 intro 액티비티를  호출하여 앱을 자동실행시키는 동작을 합니다.

 

Intent i = new Intent(this, Intro.class);
i.putExtra("webStart", webStart);
i.putExtra("webProdUserId", webProdUserId);
i.putExtra("webProdId", webProdId);
startActivity(i);

문제는 이미 앱이 실행되어 있는 상태에서 웹에서 webstart이 호출될 경우 이미 앱이 실행되어 있는상태에서

추가적으로 동일한 앱이 새로 실행되고 종료를 할 경우 현재 앱은 종료되지만, 이미 떠있던 앱이 뒤에 남아있습니다.

결론적으로 동일한 앱이 2개가 실행이 되는 상황입니다.

해당  문제 고수님들의 도움을 요청드립니다.

 

 

 

wind (2,240 포인트) 님이 2013년 5월 14일 질문

1개의 답변

0 추천

테스크의 문제입니다.

i.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 

인텐트에 위에걸 추가하시던지

메니베스트에 

 

 <activity
            android:name=".xxx"
            android:launchMode="singleTask" />를 추가해보세요
summit (760 포인트) 님이 2013년 5월 14일 답변
위에 부분 다 해보았지만 제 상황에서는 여전히 동일한 증상이 나타나네요
단, addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP);
를 위와 같이 줄 경우는 1개의 앱만 실행이 되긴하지만, 그 다음 액티비티에서 인텐트로 값을 전달했음에도 불구하고 getIntent의 결과가 널이되네요.....
이미 떠잇는 상태에서 같은 엑티비티를 (Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 이 플레그를 통해 주시거나 또는 다른 플레그를 주셔서 실행하시면
OnNewIntent(intent intent)에서 넘어온 값을 알수 있습니다.
...