我正在创建我的第一个 android 应用程序,我需要使用一项服务。UI 将有一个复选框(CheckBoxPreference),用于打开/关闭服务,并且该服务只能由我的应用程序访问(无需共享)。
到目前为止,此功能的 UI 已准备就绪,我知道如何响应该事件。我不知道,如何创建服务或如何连接到它?
这个想法是服务继续侦听事件并在后台响应它们,并且应用程序仅用于打开/关闭它或更改某些设置。
我在网上找了教程,但我似乎没有得到这个过程。
我正在创建我的第一个 android 应用程序,我需要使用一项服务。UI 将有一个复选框(CheckBoxPreference),用于打开/关闭服务,并且该服务只能由我的应用程序访问(无需共享)。
到目前为止,此功能的 UI 已准备就绪,我知道如何响应该事件。我不知道,如何创建服务或如何连接到它?
这个想法是服务继续侦听事件并在后台响应它们,并且应用程序仅用于打开/关闭它或更改某些设置。
我在网上找了教程,但我似乎没有得到这个过程。
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));
}
}
});
和服务:
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();
}
}
在 Android Studio 中,右键单击 package,然后选择 New | 服务 | 服务。现在添加这个方法:
@Override
int onStartCommand(Intent intent, int flags, int startId) {
// Your code here...
return super.onStartCommand(intent, flags, startId);
}
注意:不推荐使用 onStart。
启动服务:从活动的 onCreate 方法(或广播接收器的 onReceive 方法):
Intent i = new Intent(context, MyService.class);
context.startService(i);