Service是不能被实例化的,那么我们如果想调用里边的方法,该怎样进行呢?
首先看一个Serviece类
public class SingService extends Service{
@Override
public IBinder onBind(Intent intent) {
// TODO 自动生成的方法存根
return null;
}
@Override
public void onCreate() {
// TODO 自动生成的方法存根
super.onCreate();
System.out.print("服务启动,开始唱歌了");
}
@Override
public void onDestroy() {
// TODO 自动生成的方法存根
super.onDestroy();
System.out.print("服务结束,停止唱歌了");
}
//自定义的方法
public void ChangeSong(String songName){
Toast.makeText(getApplicationContext(), "切换歌曲", 0).show();
}
}
Activity的代码部分如下:由于这些方法都是按钮的点击事件,所以传入参数View(例如在XML文件中android:click = "start")
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*
* 开启服务
* */
public void start(View view){
Intent intent = new Intent(this, SingService.class);
//采用api创建服务,服务对象是被系统(Android 框架)new 出来的
startService(intent);
}
/*
* 停止服务
* */
public void stop(View view){
Intent intent = new Intent(this, SingService.class);
stopService(intent);
}