这里记录一种比较特别简单的服务用法,android开发中将自己的后台服务打包JAR然后提供给三方使用,一般这种用法是比较小众化。最后附上DEMO

先创建一个后台服务(JAR包):

package com.ppx.adservice.librarydemo;import android.annotation.SuppressLint;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android.util.Log;import android.widget.Toast;public class MyService extends Service {    private static final String TAG = "LZ";    MediaPlayer player;    @Override    public IBinder onBind(Intent intent) {        return null;    }    @Override    public void onCreate() {        Toast.makeText(this, "My Service created", Toast.LENGTH_LONG).show();        Log.e(TAG, "onCreate");//        player = MediaPlayer.create(this, R.raw.he);//        player.setLooping(false);        handler.postDelayed(task, 5000);    }    /**     * 循环倒计时     */    private Runnable task = new Runnable() {        public void run() {            handler.postDelayed(this, 10 * 1000);//设置延迟时间,此处是5秒            Log.e(TAG, "我是服务,我还活着");        }    };    @Override    public void onDestroy() {        Toast.makeText(this, "My Service Stoped", Toast.LENGTH_LONG).show();        Log.e(TAG, "onDestroy");//        player.stop();    }    @Override    public void onStart(Intent intent, int startid) {        Toast.makeText(this, "My Service Start", Toast.LENGTH_LONG).show();        Log.e(TAG, "onStart");//        player.start();    }    @SuppressLint("HandlerLeak")    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what) {                case 1:                    break;                default:                    break;            }        }    };}

在注册清单中注册:

<?xml version="1.0" encoding="utf-8"?>                                                                        

在build.gradle中添加:

task makeJar(type: Copy) {    delete 'build/libs/myjar.jar'//执行前删除上一次的jar包    from('build/intermediates/bundles/release/')// //这句是导入库的目录,release可以换成debug    into('build/libs/')//这句是导出到哪个目录,有时候build下面没有libs目录,可以自己创建    include('classes.jar')    rename('classes.jar', 'myjar.jar')//mylibrary是导出jar文件的名字,可以换成自己的}//  在终端执行生成JAR包makeJar.dependsOn(build)

接下来就是打包步骤:

Android将Service服务打包jar供三方调用_第1张图片

这里JAR包完毕。

最后就是将JAR包导入使用的项目Lib中,与其它jar包方式一样的引用.

调用:

        Intent intent = new Intent(MainActivity.this, MyService.class);        intent.setAction("android.intent.action.RESPOND_VIA_MESSAGE");        startService(intent);

这里在项目中注册清单中需要再次注册:

                                                  

 这样就OK了。

demo下载

                                                                                                                                                                                        -END

更多相关文章

  1. Android 源代码编后的目录分析
  2. Android Device Monitor无法查看data目录解决办法
  3. Android 读取sdcard指定目录文件
  4. Android:安装APK包以后系统文件目录的变化
  5. 64位Ubuntu配置android环境报错(...adb": error=2, 没有那个文件
  6. Android P 以及之后版本不支持同时从多个进程使用具有相同数据目
  7. android 后台长时间执行周期性定时任务 解决方案收集
  8. 【Android开发】Android应用程序目录结构

随机推荐

  1. Android(安卓)元素居中
  2. 《淘宝客户端 for Android》项目实战 htm
  3. Android(安卓)5.0 默认水波纹背景属性,可
  4. android adb shell 命令大全
  5. Android:WebView与Javascript交互(相互调用
  6. 利用oom_adj提高Application所在进程的优
  7. android之grideView书架问题
  8. Android是什么
  9. linux下部署android模拟器
  10. Android(安卓)EditText不显示光标的解决