我一直在查看文档,onStartCommand()有时返回START_NOT_STICKY,有时返回以下内容:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
return super.onStartCommand(intent, flags, startId);
}
我现在搞不懂为什么有些服务会返回super.onStartCommand(intent, flags, startId);
MyBroadCast
public class BackupBroadCast extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, BackupService.class);
context.startService(i);
}
}
MyService
public class
这可能是一个非常基本的问题,我经常在面试中被问到这个问题,但是我找不到一个合适的明确的答案,这就是为什么在这里问
我有一个简单的服务,如下
public class MyService extends Service {
private static final String TAG = "MyService";
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
for (int i = 0;
有人知道为什么我的getIntent()方法在android服务和onStartCommand()方法中没有定义吗?
@Override
public int onStartCommand(Intent intent, int flags, int startId){
super.onStartCommand(intent, startId, startId);
Intent i = getIntent();
Bundle extras = i.getExtras();
filename = extras.getString("filename");
return
public int onStartCommand(Intent intent, int flags, int startId) {
for (int i=0;i<150;i++)
{
Log.d(TAG, "onStartCommand: "+i);
if (i==10)
{
stopSelf();
Log.d(TAG, "onStartCommand: stop");
}
我有一个应用程序,用户将选择是否他想要振动或静音模式。在主活动中,我将数据作为意图的一部分传递给服务(服务始终在运行)。
在服务的onStartCommand方法中,我第一次获得数据,一切工作正常。但当我退出应用程序时,一段时间后,可能会再次调用服务的onStartCommand方法,但意图中没有数据(可能是Launcher或android OS正在执行此操作)。
因为我用来自Intent的数据设置了一个本地字符串变量,所以当OS调用onStartCommand方法时,我得到了空异常。
@Override
public int onStartCommand(Intent intent, int
根据博客文章和的文档,如果你有一个服务,你应该实现onStart()和onStartCommand(),并且在2.0和更高版本中只会调用onStartCommand()。似乎情况并非如此,在我的服务中,两者都被调用。这是一个问题,因为它试图做两次工作,所以我不得不在onStart()中添加一个检查,以便在操作系统版本低于2.0时不执行任何操作。这看起来像是一个黑客和一个bug。有没有其他人经历过这种情况,或者我可能有什么问题?我直接从示例中剪切并粘贴了代码。
@Override
public int onStartCommand(Intent intent, int flags, int st
堆栈溢出中存在一个问题,它解决了如果您创建一个新的意图对象并使用它多次调用相同的服务会发生什么情况。因此,让我们说,我们有这个服务级别的媒体播放器。
public class MyService extends Service
{
private MediaPlayer mp;
@Override
public void onCreate()
{
super.onCreate();
mp = new MediaPlayer();
....
}
@Override
public int on
我的应用程序中有一个有限的服务,我使用该服务来跟踪用户的位置。我想让这个服务一直运行,现在如果用户从android应用程序设置中删除该服务,或者使用任何任务杀手应用程序,服务就会停止而不会重新启动。所以我想把这项服务作为最优先考虑的服务。
服务onStartCommand如下所示
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
LogUtils.LOGI(TAG, "Service onStartCommand called " + startId)
Android关于服务的文档说:“另一个应用程序组件可以启动一个服务,即使用户切换到另一个应用程序,它也会继续在后台运行。”
让我们假设Android服务在onStartCommand中生成一个线程或onStartCommand:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//asyncrhonous call-1
new SomeAsyncTask().execute();
//asynchronous call-2
new Thread(new Runnable(){//some
我用一个通知id启动了一个前台服务,但是当我尝试调用stopForeground(false)时,服务正在重启。但根据android文档,调用此方法并不会停止服务。
@Override
public void onCreate() {
LogHelper.d(TAG, "onCreate");
super.onCreate();
initMediaSeesion();
}
@Override
public int onStartCommand(Intent startIntent, int flags, in
我有一个后台服务,它推送通知。当您单击通知时,我的活动将打开,但问题是,onStartCommand被再次调用,这可能会调用另一个通知,这意味着我有一个循环。
我在用
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_NOT_STICKY;
}
我也尝试了Service.START_STICKY,但没有效果。
在我的清单中:
<service
android:name=".notifica
我的应用程序的location update service没有显示在nougat设备的列表中。但它显示在较低的设备上。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
在我的应用程序中,有一个Service,一旦启动,它就可以在后台不断运行。此服务是从Activity启动的,这是onStartCommand()方法:
MyService:
....
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(Intent intent, int flags, int startId)
mHandler.postDelayed(new myRunnable(), scheduledTime);
}
我想知道是
我正在尝试启动服务类中的活动。我有一个下面的代码:
public class SendLinkService extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle bundle = intent.getExtras();
我是一个新的android开发人员,我将创建一个android服务(父服务),它将在启动时启动time.Once该服务正在启动,我将启动新的服务(即父服务的子服务).I希望在这两个服务之间进行通信。我的意思是,如果我在子服务中收到响应,我需要提前将该响应通知给父service.Thanks
/** Parent service **/
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("Parent Service started");
我有一个Android应用程序,它有一个连接到外围设备并监听其输出的服务。到外围设备的连接在服务的onStartCommand()方法中启动。
建立连接涉及到几个“有希望的人”,有时可能会因异常而失败。
如何防止服务变成正在运行但没有连接到监视器的僵尸?从onStartCommand()内部调用stopSelf()似乎不起作用。
粗略代码:
public int onStartCommand(Intent intent, int flags, int startId) {
try {
// connect to device
} catch (ConnectTo
换句话说,据我理解,这不是线程安全(用于startService()的多个调用):
public class RaceService extends Service {
volatile int a; // edit: added volatile to clarify my point
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override