我使用下面的代码让我的应用程序可以在启动完成10秒后自动启动:
public class BootActivity extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(ACTION)) {
context.startService(new Intent(context,
BootActivity.class));
try {
Thread.sleep(10000);
Intent newAct = new Intent();
newAct.setClass(BootActivity.this, NewActivity.class);
startActivity( newAct );
}
catch(Exception e) {
e.printStackTrace();
}
}
}
}
但是setClass
和startActivity
不能在这里使用
如何修改以将其设置为启动活动?
答案 0 :(得分:6)
这可以帮助你......
创建名为AutoStart.class
public class AutoStart extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent i = new Intent(context, SochActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
在Manifest中声明它..
<receiver
android:name=".AutoStart"
android:enabled="true"
android:exported="true" >
<intent-filter android:priority="500" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
答案 1 :(得分:4)
在清单文件中尝试此操作
<receiver android:name=".BootActivity">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
确保还包括已完成的启动权限。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>