安卓 service

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        //throw new UnsupportedOperationException("Not yet implemented");
        return new Binder();  //这里必须要返回一个Binder实例
    }

    // 服务启动
    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
    }

    // 服务销毁
    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    // 服务开始的时候 执行的方法
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        System.out.print("服务正在执行.....");
        new Thread() {
            @Override
            public void run() {
                super.run();

                while (true) {
                    System.out.print("服务正在执行....");
                    try {
                        sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
        return super.onStartCommand(intent, flags, startId);
    }
}
public class MainActivity extends AppCompatActivity implements ServiceConnection {

    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);  // 创建视图
        //setContentView(R.layout.my_layout);

        this.setContentView(R.layout.my_layout);

        // 启动服务
        findViewById(R.id.btnStartServcie).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                System.out.print("服务开始执行......");
                Intent i = new Intent(MainActivity.this, MyService.class);
                startService(i);
            }
        });
        // 停止服务
        this.findViewById(R.id.btnStopServcie).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this, MyService.class);
                stopService(i);
            }
        });

        //btnBindServcie 绑定service
        this.findViewById(R.id.btnBindServcie).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this, MyService.class);
                // 这里的MainActivity必须要实现ServiceConnection 重写onServiceConnected 和 onServiceDisconnected 方法
                bindService(i, MainActivity.this, Context.BIND_AUTO_CREATE);
            }
        });

        //btnBindServcie 解除绑定service
        this.findViewById(R.id.btnUnBindServcie).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this, MyService.class);
                unbindService(MainActivity.this);
            }
        });

        System.out.println("onCreate");
    }

    @Override
    protected void onStart() {
        super.onStart();
        System.out.println("onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        System.out.println("onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        System.out.println("onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        System.out.println("onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        System.out.println("onDestroy");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        System.out.println("onRestart");
    }

    // 服务被绑定成功后被执行
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        System.out.print("service connected");
    }

    // 服务被杀掉后执行
    @Override
    public void onServiceDisconnected(ComponentName name) {
        System.out.print("service DisConnected");
    }
}

这块不好理解,这个只能在以后的项目里面好好理解了。

时间: 2024-08-02 16:58:28

安卓 service的相关文章

安卓 service 后台运行,activity 启动和停止service

安卓activity界面,上面有两个按钮,一个是开始服务,一个是取消服务. 界面布局: 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layo

安卓四大组件的作用、安卓Service的作用

Activity好像是应用程式的眼睛,提供与user互动之窗. BroadcastReceiver好像是耳朵,接收来自各方的Intent. Service是在后台运行的. 一个Service 是一段长生命周期的,没有用户界面的程序.比较好的一个例子就是一个正在从播放列表中 播放歌曲的媒体播放器.在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放 歌曲.然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该 还在播放的.在

【Android】揭秘如何利用Service与线程制造安卓后台通知栏推送

安卓设备的后台通知栏推送很烦,主要是可以通过利用安卓的Service功能,在app被点击Home键或者返回键之后,依旧可以在挂载后台运行.反正Home键或者返回键只能杀死Activity而不能终结Service的,不像Windows点关闭键默认是关闭程序界面+程序线程. 本文的意义相当于在Windows中制造一条线程,或者是对Windows应用程序的关闭键进行重写,让其应用程序的关闭仅仅是隐藏界面,不杀死进程. 理论上,只要这个Service不被安卓系统因内存不足所回收,会一直持续到设备重启,或

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

delphi 10 seattle 安卓服务开发(一)

从delphi 开始支持安卓的开发开始, 安卓service 开发一直都是delphier 绕不过去的坎, 以前也有开发service  的方法,但是都是手工处理启动文件,而且要修改很多东西,基本上成功 的概率很低. delphi 10 seattle(这个名字很特殊,与win10 一样,直接跳过了9) 终于官方支持安卓service 开发了, 不知道现在现在开发安卓service 是不是很简单?那么就让我们一探究竟. 首先,我们开启已经扁平的不能再扁平delphi 10, 选择建立一个其他项目

使用ApplicationContext作为全局变量引用的缺陷

在上一篇博客中,我讲了初次开发安卓必须知道的 6件事(6 THINGS I WISH I KNEW BEFORE I WROTE MY FIRST ANDROID APP).其中一条就是:不要有一个Context的静态引用.我这么警告的原因是一个Context的静态引用可能引发内存泄露.但是一位读者指出:一个Application Context的静态引用不会造成内存泄露,因为只要程序还在运行,Application Context的生命周期就不会结束.我则反驳到:技术上来说,你可以拥有一个Ap

安卓中Service详解

service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在清单文件中配置相关信息,本博客将对Service的各个知识点进行详细讲解. 一Service的基本用法: 1使用本地服务 1)服务的启动方式 1通过Context的startService()方法启动服务:以该方法启动的服务,开启该服务的应用组件(如Activity)与该Service不存在关联关系,即使开启该服务的Activity被销毁,Service任能够一直在

安卓第十三天笔记-服务(Service)

安卓第十三天笔记-服务(Service) Servcie服务 1.服务概念 服务 windows 服务没有界面,一直运行在后台, 运行在独立的一个进程里面 android 服务没有界面,一直运行在后台,默认是运行当前的应用程序进程里面. 2.建立服务 建立一个类继承Service类 public class ServiceDemo extends Service { 在清单文件中注册service <service android:name="com.ithiema.servicequic

【原创】如何用Android Studio断点安卓自带Service或Bind类型的Service

很久以来,我一直想找一种方法来断点调试安卓系统自身的Service,或者bind类型的Service,比如我想看WifiManager里面的getWifiApConfiguration函数是如何实现的.从代码看到: public WifiConfiguration getWifiApConfiguration() { try { return mService.getWifiApConfiguration(); } catch (RemoteException e) { return null;