首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在没有activity或GUI的情况下启动android服务吗?

我可以在没有activity或GUI的情况下启动android服务吗?
EN

Stack Overflow用户
提问于 2014-02-16 22:16:40
回答 2查看 10.3K关注 0票数 5

我的目标Android是4.1.2。我创建了一个简单的android服务,它将在启动时显示Toast。但是这个应用程序不应该有任何GUI。我成功地运行了这个服务,只从一个活动,显示GUI的开始。

代码语言:javascript
运行
复制
public class MyServices extends Service {
private MediaRecorder recorder = null;
@Override
public IBinder onBind(Intent intent) {

    return null;

}
public int onStartCommand(Intent intent, int flags, int StartId)
{

    Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();

}
}
EN

回答 2

Stack Overflow用户

发布于 2014-02-16 22:18:14

您可以从RebootReceiver启动此服务,但从Android3.0开始,用户至少需要启动应用程序一次,您的应用程序才能接收android.intent.action.BOOT_COMPLETED事件。

重新启动Receiver -> Android BroadcastReceiver on startup - keep running when Activity is in Background

票数 4
EN

Stack Overflow用户

发布于 2014-02-16 22:26:08

首先,你必须创建一个接收器:

代码语言:javascript
运行
复制
public class BootCompletedReceiver extends BroadcastReceiver {

final static String TAG = "BootCompletedReceiver";

@Override
public void onReceive(Context context, Intent arg1) {
    Log.w(TAG, "starting service...");
    context.startService(new Intent(context, MyServices.class));
}

}

然后向您的AndroidManifest.xml添加权限

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

和寄存器意图接收器:

代码语言:javascript
运行
复制
<receiver android:name=".BootCompletedReceiver" >
<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

在此之后,您的应用程序(应用程序类)将与服务一起运行,但没有活动,不要将您的应用程序放在SD卡(APP2SD或类似的东西)中,因为它必须驻留在主内存中才能在引导完成后立即可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21812351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档