当我在广播接收器中呼叫我的服务时,如果我放在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();
}
}
也许我需要在调用服务之前添加一些指令? .-抱歉我的英文
答案 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();
}
}