电话启动时为什么我的活动没有启动?

时间:2012-02-10 05:42:11

标签: android

我在重新启动时使用了广播接收器,它显示了启动器屏幕,但没有自动启动我的默认主页...我必须选择我的活动才能启动...如何自动启动我的活动? ......这是我的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>

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您需要在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() );
    }
}

您可以下载here的示例。