2012-02-25 3 views
1

시스템 시작시 응용 프로그램이 자동으로 시작되기를 원합니다. 아무도 그렇게하는 법을 말해 줄 수 있습니까?시작시 응용 프로그램 시작

저를 도우려는 데 시간을 할애 해 주셔서 미리 감사드립니다.

답변

5

첫째, 당신은 매니페스트에 권한이 필요합니다

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

또한, 매니페스트에 서비스를 정의하고 부팅 완료 조치를 수신 :

<service android:name=".MyService" android:label="My Service"> 
    <intent-filter> 
     <action android:name="com.myapp.MyService" /> 
    </intent-filter> 
</service> 

<receiver 
    android:name=".receiver.StartMyServiceAtBootReceiver" 
    android:enabled="true" 
    android:exported="true" 
    android:label="StartMyServiceAtBootReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

그런 다음 당신이 필요 BOOT_COMPLETED 조치를 ^을 서비스를 시작하는 수신자를 정의하십시오.

public class StartMyServiceAtBootReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { 
      Intent serviceIntent = new Intent("com.myapp.MySystemService"); 
      context.startService(serviceIntent); 
     } 
    } 
} 

이제 전화가 시작될 때 서비스가 실행 중이어야합니다. 여기

0

의 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.practice" android:versionCode="1" android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="4" /> 

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".AutoStartExampleActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <receiver android:name="AutoStart"></receiver> 

     <receiver android:name=".AutoStart"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 


    </application> 
</manifest> 

AutoStartExampleActivity 파일

package com.practice; 

import android.app.Activity; 
import android.os.Bundle; 

public class AutoStartExampleActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

브로드 캐스트 리시버 코드,

package com.practice; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 

public class AutoStart extends BroadcastReceiver 
{ 

    public void onReceive(Context context, Intent intent) 
    { 
     System.out.println ("Application Started"); 
     // put your TimerTask calling class here 

     try 
     { 
      Intent myIntent = new Intent (context, AutoStartExampleActivity.class); 
      myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(myIntent); 
     } 
     catch (Exception e) 
     { 
      System.out.println (" Error while Starting Activity " + e.toString()); 
     } 
    } 
} 
예제 코드를 작업 완료