30

在我的应用程序中,我有一个要从中启动服务的活动。有谁能够帮助我?

4

7 回答 7

61

在你的代码中添加这个

Intent serviceIntent = new Intent(this, ServiceName.class);
    startService(serviceIntent);

不要忘记在 AndroidManifest.xml 文件中添加服务标签

<service android:name="com.example.ServiceName"></service>

来自Android官方文档

注意:默认情况下,服务与声明它的应用程序和该应用程序的主线程在同一进程中运行。因此,如果您的服务在用户与来自同一应用程序的活动交互时执行密集或阻塞操作,则该服务将降低活动性能。为避免影响应用程序性能,您应该在服务内启动一个新线程。

于 2012-09-13T05:42:34.287 回答
43

应用程序可以在Context .startService 方法的帮助下启动服务。如果服务尚未创建,该方法将调用服务的 onCreate 方法;否则将调用 onStart 方法。这是代码:

Intent serviceIntent = new Intent();
serviceIntent.setAction("com.testApp.service.MY_SERVICE");
startService(serviceIntent);
于 2010-02-25T16:26:41.590 回答
2

首先从 androidManifest.xml文件(即从应用程序选项卡)创建服务并为其命名。
在某些事件的活动上,例如单击或触摸以包含服务中的代码:

public void onClick(View v)
{
    startService(new Intent(getApplicationContext(),Servicename.class));
}

如果要停止正在运行或已启动的服务,请包含以下代码:

public void onclick(View v)
{
    stopService(new Intent(getApplicationContext,Servicename.class));
}
于 2013-01-05T05:09:48.543 回答
1

API 演示有一些启动服务的示例。

于 2010-02-25T15:08:11.600 回答
1

使用 Context.startService() 方法。

并阅读

于 2010-02-25T15:10:09.690 回答
0

如果您想启动一项服务并且它应该在后台运行,请在您的相应服务中使用 START_STICKY。

您也可以在启动时启动服务,

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

并创建接收器,

<receiver android:name=".auth.NotificationBroadcast" android:enabled="true" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

在 Brodcast Receiver 中添加,

@Override
    public void onReceive(Context context, Intent intent) {

        System.out.println("BroadcastReceiverBroadcast--------------------ReceiverBroadcastReceiverBroadcastReceiver----------------BroadcastReceiver");

        if (intent != null) {
            String action = intent.getAction();

        switch (action) {
            case Intent.ACTION_BOOT_COMPLETED:
                System.out.println("Called on REBOOT");
                // start a new service 
               startService(new Intent(getApplicationContext(),Servicename.class));

                break;
            default:
                break;
        }
    }
}

你的服务就像,

于 2016-09-20T06:13:05.800 回答
0

您可以从kotlin以下活动开始服务:

   startService!!.setOnClickListener { startService() }
 
   private fun startService(){
    startService(Intent(this, HitroService::class.java))
   }
于 2019-07-06T04:19:22.723 回答