2014-10-30 2 views
0

작업을 어떻게 생각합니까? 볼 수있는 작업 관리자를 엽니 다.동일한 작업에서 외부 활동 시작

나는 오래 전부터 현재 작업에서 외부 활동을 시작하는 것이 불가능하다고 생각 해왔다. 그러나 나는 이것이 틀린 것을 발견했습니다!

내 앱이 같은 작업에서 트위터/페이스 북/SMS를 시작할 수 있습니다. 작업 관리자 버튼을 클릭하면 내 작업 만 볼 수 있습니다. 그러나 이것은 브라우저에는 적용되지 않습니다. 나는 두 개의 브라우저 app 크롬과 파이어 폭스를 시도했다. 그들 중 누구도 트위터/페이스 북/SMS처럼 작동하지 않습니다

다음은 페이스 북 클라이언트와 브라우저를 여는 코드입니다. 모든 의견은 정말 감사하겠습니다!

public Intent shareViaFacebook(Activity ctx) { 
    Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    ActivityInfo appInfo = searchForApp(ctx, intent, "facebook"); 

    if (appInfo == null) 
     return null; 

    intent.addCategory(Intent.CATEGORY_LAUNCHER); 
    intent.setComponent(new ComponentName(appInfo.packageName, appInfo.name)); 

    intent.putExtra(Intent.EXTRA_TEXT, "message"); 
    return intent; 
} 


public Intent launchBrowser(Activity ctx, String url) { 
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 

    ActivityInfo appInfo = searchForApp(ctx, intent, null); 
    if (appInfo == null) 
     return null; 
    intent.setComponent(new ComponentName(appInfo.packageName, appInfo.name)); 
    intent.addCategory(Intent.CATEGORY_LAUNCHER); 
    return intent; 
} 

답변

2

결론은 다음과 같습니다. 외부 활동이 실행 중인지 여부는 자체 선언에 따라 다릅니다. 또 다른 예로서

는 안드로이드 브라우저 응용 프로그램은 선언 그 웹 브라우저 활동 요소에 singleTask 발사 모드를 지정하여 태스크 자체에서해야 항상 열려. 즉, 응용 프로그램이 Android 브라우저를 여는 데 문제가있는 경우 을 의미하고 해당 응용 프로그램과 동일한 작업에 활동이 배치되지 않습니다. 대신 브라우저에 대한 새 작업이 시작되거나 브라우저에 이미 의 작업이 백그라운드에서 실행중인 경우 해당 작업이 으로 전달되어 새 의도를 처리합니다.

공식 문서에서.