Bib*_*hny 6 android android-service foreground-service
我有foreground-service通知。当应用程序从最近的应用程序托盘中滑走时,服务将被终止,通知也将被删除。这是我的服务代码VoiceService.class:
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
showNotification();
Toast.makeText(this, "Service Started!", Toast.LENGTH_SHORT).show();
return START_STICKY;
}
private void showNotification() {
new SetupTask(this).execute(); // a method in my code which works fine.
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setAction(Constants.ACTION.MAIN_ACTION);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("TutorialsFace Music Player")
.setContentText("My song")
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentIntent(pendingIntent)
.setOngoing(true)
.build();
startForeground(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE, notification);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onTaskRemoved(Intent rootIntent) {
}
Run Code Online (Sandbox Code Playgroud)
我正在使用小米设备。我还在设置中启用了自动启动。我也尝试将以下代码添加到onTaskRemoved()
Intent intent = new Intent(getApplicationContext(), VoiceService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 1, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 1000, pendingIntent);
super.onTaskRemoved(rootIntent);
Run Code Online (Sandbox Code Playgroud)
这些解决方案均无效。我有什么问题onStartCommand()吗?
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |