在广播接收机中调用服务问题

时间:2015-03-16 18:12:42

标签: android

当我在广播接收器中呼叫我的服务时,如果我放在onReceive方法的最后一个;服务被正确触发,但如果我拨打电话,我会在服务从未被触发后做其他事情。

让我解释一下,如果我这样做,服务就会被触发

public class receiver extends BroadcastReceiver {

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

        // OK
        Intent i = new Intent( context, MyService.class );
        context.startService( i );
    }
}

但是,如果我这样做,服务永远不会被触发,我需要在服务后做一些其他事情......

public class receiver extends BroadcastReceiver {

        @Override
        public void onReceive( Context context, Intent intent ) {
            Intent i = new Intent( context, MyService.class );
            context.startService( i );

            someMethod();
        }
    }

也许我需要在调用服务之前添加一些指令? .-抱歉我的英文

1 个答案:

答案 0 :(得分:0)

  

但是,如果我这样做,服务永远不会被触发,我需要这样做   服务结束后的其他一些事情......

它可以帮到你:

    public class receiver extends BroadcastReceiver {

    @Override
    public void onReceive( Context context, Intent intent ) {
        final Context ctx = context;
        Thread  thread = new Thread(new Runnable(){
              @Override
              public void run(){
                  Intent i = new Intent( context, MyService.class );
                  ctx.startService( i );
              }
        });

       thread.start();

       someMethod();
    }
}