一旦启动完成android,如何启动我自己的Activity而不是移动主屏幕?

时间:2012-03-12 05:45:40

标签: android

启动完成后我想加载我自己的活动作为第一个屏幕,而不是移动主屏幕。两者之间发生了延迟,所以如何解决这个问题...提前感谢.....

2 个答案:

答案 0 :(得分:5)

检查一下: OtaStartupReceiver

此类是Android源中的Phone apk源代码,请检查方法private boolean shouldPostpone(Context context)

  

在提供电话初始化向导的设备上(例如Google   设置向导),我们允许延迟CDMA OTA设置,以便可以在一个   单向导。该向导负责

     

(1)一旦运行和/或

就自行禁用      

(2)将'device_provisioned'标志设置为非零和

     

(3)通过以下操作调用OTA安装程序。 NB:典型的手机   初始化向导将自己安装为主屏幕   (类别“android.intent.category.HOME”)优先级高于   默认。该向导应该设置'device_provisioned'   完成,禁用自己   PackageManager.setComponentEnabledSetting()然后开始回家   屏幕。

如上所示:

您可以在AndroidManifest.xml中创建活动

    <activity
        android:name=".Demo"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <!--android:priority added-->
        <!--category.HOME and DEVICE_INITIALIZATION_WIZARD must have-->
        <intent-filter android:priority="1000">
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME"/>
            <action android:name="android.intent.action.DEVICE_INITIALIZATION_WIZARD"/>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

答案 1 :(得分:1)

我建议这样做时要小心!

在开始之前,我认为启用USB调试是个好主意,所以如果发生任何事情,你可以使用ADB修复它。

我在一个项目中工作,客户希望应用程序显示而不显示Android默认主页。

为此,我建议你谨慎行事。 我使用的系统:rooted Android 4.0.3

在清单中将此内容添加到您的活动中:

<activity android:name=".MainActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />  
        <category android:name="android.intent.category.HOME"/>  <!-- this will make your app work like a launcher -->
        <category android:name="android.intent.category.DEFAULT" />                
    </intent-filter>
</activity>

为此,您可能需要查看Settings / Applications / All 找到“启动器”,单击它,然后单击按钮Clear Defaults

之后,点击“HOME”按钮,Android将询问您要启动哪个应用程序,如果您选择了应用程序,并选中“make default”框,它将始终作为您的主屏幕,因此,使你的应用程序成为发射器。因此,当您重新启动设备时,它将始终显示您的应用。

小心!如果您这样做,可能会失去对主屏幕的访问权限,并且不会再次选择访问您的设置。所以你需要通过ADB访问它,或者像我一样创建和“逃避”。

在我的应用程序内部,在管理区域中,我添加了一个调用以下内容的按钮:

public void custom_launcher(View v){
    startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER));
}

这将调用Android菜单,您可以在其中再次转到“设置”菜单。如果您想再次使用Android默认启动器,请在设置菜单中执行与启动器相同的操作。

为此,请转到Settings / Applications / <app-name>,然后点击“清除默认值”。当您再次按下主页时,Android会询问您要使用哪个启动器,Android启动器或您的应用。