2012-05-03 212 views
33

我想在平板电脑启动时启动我的应用程序,以便我的应用程序的主要活动是用户在启动平板电脑时看到的第一件事。
我已阅读关于LauncherActivity,但我不明白如何使用它。
任何人都可以帮我提出建议,链接或教程吗?
LauncherActivity是最好的方式还是有其他的选择?如何在开机时启动/启动应用程序Android

+0

进出口寻找类似的功能,如果你成功了,请与我分享代码。 – Anirudh

回答

69

这行代码为您可能有助于...

第一步: 设置权限在AndroidManifest.xml

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

第二步: 添加这是接收意图过滤器,

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

第3步: 现在您可以从Receiver类的onReceive方法开始您的应用程序的第一个活动。

public class BootReciever extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent myIntent = new Intent(context, Tabs.class); 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myIntent); 
} 

} 
+1

thaks vishesh,morevore这个步骤我的主要活动maust扩展LauncherActivity或干脆活动? –

+1

相反,你可以使用Receiver,这将工作正常...检查新的更新的代码行.. –

+0

Tabs.class在步骤3应该是我的主要活动? –

11

如果您想在平板电脑启动时启动应用程序,则需要监听BOOT_COMPLETED操作并对其作出反应。 BOOT_COMPLETED是在系统完成启动后广播一次的广播操作。您可以通过创建BroadcastReceiver来监听此操作,然后在收到BOOT_COMPLETED操作的意图时启动您的启动Activity。

此权限添加到您的清单:

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

在你的项目中创建一个自定义广播接收器:

public class MyBroadCastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      Intent i = new Intent(context, MyActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 
     } 
    } 
} 

然后通过添加的BroadcastReceiver以清单修改清单文件:

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 
+1

尝试过,不起作用,在显示正常启动屏幕后,我的意图在约2秒后被调用。 – Anirudh

2

通过@vishesh chandra答案是正确的。但在某些设备上不起作用,因为默认情况下应用程序已安装在外部存储上。请确保您指定了android:installLocation =“internalOnly”否则,如果应用安装在SD卡中,您将不会收到任何引导完成操作。将其添加到manifest.xml文件中的应用程序标记中,它将起作用。

0

我想在这个问题上添加一点,这是我几天所面临的问题。我尝试了所有的答案,但那些都不适合我。如果您使用的是Android 5.1版本,请更改这些设置。

如果您使用的是Android 5.1版,那么您必须从应用程序设置中取消选择(限制为启动)。

设置>应用程序>您的应用程序>限制推出(DIS选择)

请看图片。

Image

相关问题