学习Service过程中遇到生命周期LifeCycle问题,求助

maverickgoose maverickgoose 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我所遇到的问题如下:

intent.setClass(this, TService.class);
bindService(intent, sconn, Context.BIND_AUTO_CREATE);

想点击按钮实现bindService()方法,本应该这样进行onCreate()-->onBind()

但我在LOGCAT里面看到的却是onCreate()-->onBind()-->onUnbind()-->onDestroy()为什么会自动调用后面两个方法,对此我很不解,具体代码如下





代码:TService.java

package sgtmav.test.helloworld;

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

public class TService extends Service{

MediaPlayer mplayer;

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
System.out.println("Service--onBind()");
mplayer.start();
return null;
}

@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
System.out.println("Service--onUnbind()");
//return super.onUnbind(intent);
mplayer.stop();
return false;
}

@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
System.out.println("Service--onCreate()");
mplayer = MediaPlayer.create(this, R.raw.mb);

}

@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
//super.onStart(intent, startId);
System.out.println("Service--onStart()");
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
System.out.println("Service--onStartCommand()");
mplayer.start();
//return super.onStartCommand(intent, flags, startId);
return 0;
}

@Override
public void onDestroy() {
// TODO Auto-generated method stub
//super.onDestroy();
System.out.println("Service--onDestroy()");
mplayer.stop();
}

@Override
public void onRebind(Intent intent) {
// TODO Auto-generated method stub
//super.onRebind(intent);
System.out.println("Service--onRebind()");
}

}
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
maverickgoose
Android 80,490 成员 91,375 内容