1

2 개의 프로젝트가 있습니다. 하나는 나의 메인 프로젝트 (A)이고 다른 하나는 도서관 프로젝트 (B)입니다. 나는 B에 위치한 활동에서 A에있는 활동을 시작하고 싶습니다. 어떻게해야합니까? 내 도서관 프로젝트의 주요 프로젝트 시작하기

제가 해결되지

B.classstartActivity(getApplicationContext(),B.class); 하지만

을 시도했다.

어떻게 내 라이브러리 프로젝트가 내 기본 프로젝트의 활동을 시작하게 할 수 있습니까?

당신은 당신이 활동의 ​​목적 필터에 사용자 지정 작업을 추가하고이 코드를 사용하여 작업을

<activity android:name="my.package.MyActivity"> 
    <intent-filter> 
     <action android:name="my.package.action.MY_ACTION"/> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="my.package"/> 
    </intent-filter> 
</activity> 

시작 활동을 지정하여 그 활동을 시작할 수 있습니다

+0

프로젝트 A의 매니페스트에 활동 B를 추가 했습니까? – sergiomse

+0

메인 프로젝트에 Lib 프로젝트가 추가되었습니다. –

+0

원하는 작업을 수행 할 수있는 방법이 있지만 그 방법이 적합하지 않습니다. 기본적으로 순환 참조이며, 피하려는 항목입니다. 라이브러리의 일부 수신기 인터페이스를 선언하고 대신 기본 프로젝트에서 수신기를 설정하십시오. – nitzanj

답변

1

:

final Intent intent = new Intent("my.package.action.MY_ACTION"); 
intent.addCategory(getActivity().getPackageName()); 
startActivity(getActivity(), intent); 
+0

다른 방법으로, 의도 필터를 추가하는 것 말고 다른가요? –

1

당신은 사용할 필요가 없습니다 인 텐트 필터. 액티비티 A의 코드는 액티비티 B를 시작하도록 지정하기 위해

ComponentName cn = new ComponentName(this, "my.package.MyActivity.B"); 
Intent intent = new Intent().setComponent(cn); 

startActivity(this, intent); 

을 사용할 수 있습니다.

관련 문제