尝试使用android
中的服务保持xmpp连接处于活动状态- (void)updateMusicInfo
{
if(_localSongList.count != 0)
{
_currentTrackNumber = [DataHolder getCurrentTrackNumber];
MPMediaItem *mediaItem = [_localSongList objectAtIndex:_currentTrackNumber];
if(mediaItem != nil)
{
MPMediaItemArtwork *itemArtwork = [mediaItem valueForKey:MPMediaItemPropertyArtwork];
UIImage *iconImage;
if(itemArtwork == nil)
{
iconImage = [UIImage imageNamed:@"default_music_cover.png"];
}
else
{
iconImage = [itemArtwork imageWithSize:CGSizeMake(_ivSongCover.frame.size.height, _ivSongCover.frame.size.width)];
}
[_ivSongCover setImage:iconImage];
}
}
}
}
我杀了我的应用后,我的服务重新启动。为什么会这样?当我重新启动它时,在connection = XMPPClient.getConnection();给我一个异常NetworkOnMainThreadException。 当我杀死我的应用时,我不希望我的服务重新启动。
答案 0 :(得分:0)
在服务的onStartCommand(Intent,int,int)函数中使用START_NOT_STICKY。
例如: public static final int START_NOT_STICKY http://developer.android.com/reference/android/app/Service.html
答案 1 :(得分:0)
START_STICKY标志会导致服务在销毁时自动重启。你的onstartCommand应该返回START_NOT_STICKY而不是START_STICKY。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
onHandleIntent();
return START_NOT_STICKY;
}