从android O你不能创建简单的后台服务,它必须是前台,所以我按照教程并构建了一个,但是,我收到了这个错误:
Unable to start service ...SMSService@302fa17 with Intent
{ cmp=...SMSService (has extras) }: java.lang.IllegalMonitorStateException:
object not locked by thread before notify()
我在这里看到了一些其他主题,但这些都是旧通知
这是我的代码:
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent mPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Notification mNotification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("Content Title")
.setContentText("Content Text")
.setSmallIcon(R.drawable.ic_check)
.setContentIntent(mPendingIntent)
.build();
startForeground(1, mNotification);
mNotification.notify();
答案 0 :(得分:1)
当您尝试在特定对象上调用notify()
时,它会唤醒正在等待此对象监视器的单个线程。
由于您没有锁定任何主题,因此您不必使用mNotification.notify();
。删除startForeground(1, notification);
。
至于显示通知import android.preference.DialogPreference
就足够了