Android 启动后启动服务
如何在启动运行Android 启动后启动服务,android,service,boot,Android,Service,Boot,如何在启动运行mainActivity上的onCreate()函数后启动服务?我已经使用了broadcastRecivier,我可以提供服务,但我无法从主活动执行功能 这是我的代码broadcastReceiver public class BootStartUpReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {
mainActivity
上的onCreate()函数后启动服务?我已经使用了broadcastRecivier
,我可以提供服务,但我无法从主活动执行功能
这是我的代码broadcastReceiver
public class BootStartUpReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
//Start service on Boot
if(intent.getAction().equals(intent.getAction())){
Intent service = new Intent(context,TestService.class);
service.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(service);
}
//Start App on Boot Start up
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
//if(intent.getAction().equals(intent.getAction())){
Intent app = new Intent(context,TestService.class);
app.setClass(context,SatuActivity.class);
app.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(app);
}
}
}
您不能调用startService()
并启动活动
。您必须调用startActivity()
。请注意,这不是推荐的模式,因为大多数用户不希望在每次启动时都看到应用程序。我认为您是在将活动作为服务启动。。请更改为startActivity()
以下是我的工作方式:
final Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName(
"your.package",
"your.package.MainActivity");
i.setComponent(cn);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
我需要更改以启动活动,但我遇到了一些故障,我无法查看logcat,因为在重新启动后,您仍然可以在启动后检查logcat。logcat缓冲区是一个循环RAM缓冲区,相当大。因此,即使在设备启动并看到“此应用程序已停止”对话框后,您仍然可以连接logcat。你需要看一下这个,看看你的崩溃发生在哪里。我必须将它更改为启动活动并更改为我的主活动,但我在启动后发生了崩溃。你可以发布你的日志吗?你仍然可以在你的日志窗口上看到日志,它可能很大….,你可以用你的包过滤,找到它…我使用你的代码,当我的活动在编译后打开时,它不会在主活动上运行函数我误读了你的问题,我无法理解你试图做什么。你是说onCreate of MainActivity没有被调用,而MainActivity已经启动?很抱歉,我对onCreate MainActivity的理解有误,函数正在运行,但当我重新启动手机时,开机后就崩溃了。你有必要的权限吗?android.permission.RECEIVE\u BOOT\u已完成尝试此操作
final Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName(
"your.package",
"your.package.MainActivity");
i.setComponent(cn);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);