后台服务例子:
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast;
import androidx.annotation.Nullable;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class MyService extends Service {
private boolean connected = false;
private Socket clientSocket;
private PrintWriter out;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// return super.onStartCommand(intent, flags, startId);
// Let it continue running until it is stopped.
Toast.makeText(this, "服务已经启动", Toast.LENGTH_LONG).show();
//connectToServer();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
if (clientSocket != null && clientSocket.isConnected()) {
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Toast.makeText(this, "服务已经停止", Toast.LENGTH_LONG).show();
}
public String getString(){
return "测试能否调用Service方法";
}
//接口
@Nullable
@Override
public IBinder onBind(Intent intent) {
Log.i("MBinder","执行onBind方法");
IBinder mBinder = new MBinder();//对象上转型成接口
return mBinder;
}
//内部类
public class MBinder extends Binder {
MyService getService() {//内部类实例方法获取外部类实例
// 返回本service的实例到客户端,于是客户端可以调用本service的公开方法
return MyService.this;
}
}
}