Android -- Service的使用

Service正如其名服务,我们之前了解过Activity表示的是一个页面,但是如果我们某些操作,不需要展示页面,值需要进行后台的一个操作,这时候我们可以创建一个Service,一般进行socket通信、http请求等操作。

1、我们创建一个Android的工程
2、增加一个Service,代码如下

package com.example.learnservice;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class MyService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        new Thread() {
            @Override
            public void run() {
                super.run();
                //while (true) {
                    System.out.println("后台运行...");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                //}
            }
        }.start();

        return super.onStartCommand(intent, flags, startId);
    }

}

继承Service并且重写onStartCommand,此方法在启用此Service的时候执行。

3、我们在空的activity页面增加2个按钮,分别为启动和停止Service的操作,代码如下

package com.example.learnservice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {
    private Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        intent = new Intent(MainActivity.this, MyService.class);

        findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startService(intent);
            }
        });

        findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println("关闭后台服务....");
                stopService(intent);
            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

通过startService和stopService操作。

4、我们看下Android的后台运行进程,如图
技术分享

5、我们先点击启动Service按钮,再查看后台进程
技术分享
看到了吗,这个是我启动的Service,它在后台被启动起来啦 。

6、我们调用stopService方法停止Service,如图
技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。