启动后启动服务

时间:2014-11-19 16:22:18

标签: android service boot

如何在onCreate()上运行mainActivity功能的启动后启动服务?我已经使用broadcastRecivier,我可以提供服务,但我无法执行主要活动的功能。

这是我的代码broadcastReciver

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);
    }

        }   
    }

3 个答案:

答案 0 :(得分:0)

您无法致电startService()并开始Activity。您必须致电startActivity()。请注意,这不是推荐的模式,因为大多数用户不希望每次启动时都看到应用程序。

答案 1 :(得分:0)

我认为您正在启动Activity as a Service ..请更改为startActivity()

  Intent app = new Intent(this,MainActivity.class);// pass main activity
  app.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  this.startActivity(app);

答案 2 :(得分:0)

这是我的工作方式:

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);