在Android中创建服务

Ped*_*C88 10 android android-service

我正在创建我的第一个Android应用程序,我需要使用服务.用户界面将有一个复选框(CheckBoxPreference),用于打开/关闭服务,只有我的应用程序才能访问该服务(不需要共享它).

到目前为止,这个功能的UI已准备就绪,我知道如何响应事件,我不知道如何创建服务以及如何连接到它.

这个想法是服务继续监听事件并在后台响应它们,并且应用程序仅用于打开/关闭它或更改某些设置.

我在网上寻找过教程,但我似乎没有得到这个过程.

whi*_*win 12

CheckBox checkBox =
    (CheckBox) findViewById(R.id.check_box);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            startService(new Intent(this, TheService.class));
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

和服务:

public class TheService extends Service {   

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "Service created!", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "Service stopped", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 行startService(new Intent(this,TheClass.class)); 应该读取:startService(new Intent(this,TheService.class)).并且不要忘记将服务添加到AndroidManifest.xml (3认同)

Yst*_*ter 5

在Android Studio中,右键单击包,然后选择新建| 服务| 服务。现在添加此方法:

@Override
int onStartCommand(Intent intent, int flags, int startId) {
    // Your code here...
    return super.onStartCommand(intent, flags, startId);
}
Run Code Online (Sandbox Code Playgroud)

注意:不建议使用onStart。

要启动服务:从活动的onCreate方法(或广播接收者的onReceive方法):

Intent i = new Intent(context, MyService.class);
context.startService(i);
Run Code Online (Sandbox Code Playgroud)