android service

<application 
    .....
    >
    ...
      ..
    <service
        android:name="com.mylibrary.services.AppService"
        android:enabled="true" >
    </service>
</application>

 

Intent i = new Intent(context, AppService.class);
i.putExtra("finish","over");
i.setAction(AppService.ACTION_MSGFINSIH1);
//开启服务
context.startService(i);
//关闭服务
//context.stopService(i);

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        //回调
        String action = intent.getAction();
        String s = intent.getStringExtra("msg");
        if (null != s) {
            System.out.println("msg:"+s);
        }
    }
};

//注册接收  开启接收回调
LocalBroadcastManager.getInstance(context).registerReceiver((receiver),
        new IntentFilter(AppService.ACTION_MSGTEXT1));

//取消注册
//LocalBroadcastManager.getInstance(context).unregisterReceiver(receiver);

 

public class AppService extends IntentService {
   
    private String LOG_TAG = "AppService";
    public static final String ACTION_MSGFINSIH1="com.mylibrary.services.ACTION_MSGFINSIH1";
    public static final String ACTION_MSGTEXT1="com.mylibrary.services.ACTION_MSGTEXT1";

    public static final String ACTION_MSGFINSIH2="com.mylibrary.services.ACTION_MSGFINSIH2";
    public static final String ACTION_MSGTEXT2="com.mylibrary.services.ACTION_MSGTEXT2";

    private LocalBroadcastManager broadcaster;
    public AppService(String name) {
        super(name);
    }
    public AppService() {
        super("AppService");
    }
    @Override
    public IBinder onBind(Intent arg0) {
        Log.v(LOG_TAG, "onBind");
        return null;
    }

    @Override
    public void onCreate() {
        Log.v(LOG_TAG, "onCreate");
        broadcaster =  LocalBroadcastManager.getInstance(this);
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.v(LOG_TAG, "onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public boolean onUnbind(Intent intent) {
        Log.v(LOG_TAG, "onUnbind");
        return super.onUnbind(intent);
    }

    @Override
    public void onDestroy() {
        Log.v(LOG_TAG, "onDestroy");
        super.onDestroy();
    }
    @Override
    protected void onHandleIntent(@Nullable Intent intent) {
        Log.v(LOG_TAG, "onHandleIntent");
        if (intent != null) {
            final String action = intent.getAction();
            if (ACTION_MSGFINSIH1.equals(action)) {
                Intent intent1 = new Intent(ACTION_MSGTEXT1);
                intent1.putExtra("msg","");
                broadcaster.sendBroadcast(intent1);
            }
            if (ACTION_MSGFINSIH2.equals(action)) {
                String param1 = intent.getStringExtra("finish");
                Intent intent1 = new Intent(ACTION_MSGTEXT2);
                intent1.putExtra("msg",param1+",IntentService收到并且广播了出去");
                sendBroadcast(intent1);
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值