런처가 실행이 돼서 딱 바탕화면이 나오는게 아니고 우선적으로 특정 어플이 실행되게 하고싶습니다.
방법이 있나요?
음 런처가 아니라 특정 어플을 실행 시키고 싶으신거면..
브로드캐스트 기능을 이용하면 됩니다.
시스템에서 각종 이벤트 발생시에 모든어플에게 신호를 뿌려주는데, 이 신호중에 "핸드폰켜졌어!" 라는 신호도 있거든요.
실행하고자 하는 어플에다가 아래 클래스 생성해주시고.
public class StartBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())){
Intent i = new Intent(context, 시작.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
퍼미션 추가해주시고
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
매니패스트에 브로드캐스트 등록해주시고 (액티비티 등록하는 것과 동일한 레밸입니다.)
<receiver android:name=".StartBroadcastReceiver" android:enabled="true" android:exported="false">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
그럼 위에 "시작.class" 라고 지정했던 클래스가 실행될것입니다.
헌데 질문에 명확하게 나오지 않아서 잘 모르겠습니다만..
브로드캐스트를 이용할경우 런처가 실행되고 몇초 있다가 브로드캐스트가 날라가기 때문에 원하시는 어플이 실행되기 전에 런처에 화면을 무조건 볼수밖에 없습니다. 이와 같은 것이 싫다면 해당 어플을 런처로 만드셔서 특정 작업을 수행하신후 원래의 실제 런처를 실행해주시는게 좋지 않을까 싶습니다. 뭐 다른 방법이 있을수도 있지만 일단 제 생각은 이렇습니다.




태스크 어플로 가능하지 않을까요?