认认真真写安卓,服务篇,组件(Service)

来源:互联网 发布:我的世界手机版月球js 编辑:程序博客网 时间:2024/05/29 16:17

服务的作用:运行一些耗时操作,接收服务端消息之后进行处理,并发的执行一些动作。

服务基础: 创建服务;启动服务;销毁服务。

public class MyService extends Service {

    public static final String TAG = "MyService";
    
    //
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    
    //服务第一次创建调用该方法
    @Override
    public void onCreate() {
        super.onCreate();
        Log.w(TAG, "in onCreate");
    }

    //开始服务时
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.w(TAG, "in onStartCommand");
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.w(TAG, "in onDestroy");
    }
}

这里的onBind是Service基类的抽象类,下面再说,其它三个方法就是服务的三个步骤。

1.上面是第一步 定义一个自己的服务类

2.所有安卓组件都必须在Manifest.xml中注册 服务也不例外

<service android:enabled="true" android:name=".MyService" />

3.启动与停止服务

startService(serviceIntent);       stopService(serviceIntent);


当运行startService(serviceIntent) 之后就会依次调用上面提到的三个方法,然而当按Home键,华为Pad会关闭当前程序时,后台是没有服务的,小米的不会关闭,但如果按菜单键,上划关闭应用,则不会调用Service的onDestroy()方法。而一直点返回是不会关闭应用程序的,程序会在后台运行。

(其实这里很容易让人懵逼,都说服务是放在后台运行的,可为什么应用程序被杀掉之后,服务也停止了呢?

服务有没有停止是通过android手机的设置界面——>更多应用——>找到相应的app名称,你会发现微信和QQ的都有两个进程和服务,但是它们的软件通过上述方法被关闭之后,进程和服务都是存活的,然后我们自己的程序和服务却被关闭了,网上有很多帖子,讲的一个思路,却没有可行的方法与代码做参考,很心累!!!!导致我不想继续写服务相关的知识)




0 0
原创粉丝点击