2012-02-10 92 views
3

我已经使用广播接收器,当它重新启动它显示启动器屏幕,但没有自动启动我的默认家庭...我不得不选择我的活动开始...如何自动启动我的活动? ......这是我的AndroidManifest.xml为什么我的活动在电话启动时未启动?

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

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    > 
    <receiver android:name=".receiver.onPhoneReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

    <activity 
     android:name=".DisableHomeActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 
     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.HOME" />         
       <category android:name="android.intent.category.DEFAULT" />       
     </intent-filter> 
    </activity> 
</application> 

+0

你检查了我的答案吗? – Lucifer 2012-02-10 06:27:12

回答

2

你需要给你以下的广播接收器的代码,

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()); 
    } 
} 

您也可以下载here一个例子。

1

对于创建主屏幕应用程序,无需使用BroadcastReceiver。使用您使用的操作和类别的活动就足够了。开机后,android系统会显示列表中的所有类别为HOME和DEFAULT的应用程序,您必须选择您的主屏幕应用程序并通过选中列表下方的复选框将其设置为默认值,因此从下次开始它不会询问每当您按HOME按钮时都可以选择家庭应用程序。

查看Android示例首页示例,它可以帮助您创建新的主屏幕应用程序。