2010-12-05 61 views
6

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

到目前为止,此功能的用户界面已准备就绪,我知道如何响应该事件,我不知道如何创建服务以及如何连接到该服务。

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

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

回答

10
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(); 
    } 
} 
+3

线startService(新意图(此,TheClass.class));应该阅读:startService(新的意图(this,TheService.class))。并且不要忘记将该服务添加到AndroidManifest.xml – PedroC88 2010-12-05 17:55:50

1

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

@Override 
int onStartCommand(Intent intent, int flags, int startId) { 
    // Your code here... 
} 

注意:在onStart已被弃用。

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

Intent i = new Intent(context, MyService.class); 
context.startService(i);