我正在使用Android Room Database为我的Android应用程序创建数据库.它在本地完美适用于我,但我无法链接到服务器以使其在线.我正在使用Firebase进行身份验证.我正在尝试使用Firebase实时数据库从Room保存整个数据库对象,并根据经过身份验证的用户在应用启动时加载正确的数据库.
我想问一下这是否可行?如果我可以保存Room数据库的整个实例,或者我需要在Firebase上重新创建数据库并逐项保存我的数据?
我似乎也无法访问Room的数据库数据,因为当我得到AppDatabase类的对象时,它并没有真正传递数据.而且我不知道如何做相反的事情,将以后从Firebase检索到的数据分配给保存的本地数据?
此外,如果使用Firebase无法实现,您是否对我可以使用Room的其他服务器有任何建议?
database android database-connection firebase-realtime-database android-room
我正在创建一个包含许多功能的管理器应用程序,其中一个是警报,而在大多数情况下尝试启动警报时,我都会收到此异常“ java.lang.IllegalStateException:不允许启动服务意图”,因为它是在后台运行(有时会延迟运行)!我广泛地寻找答案,并尝试了以下方法,但均无济于事:-JobScheduler:我遇到相同的异常-bindService()并在onServiceConnected()中编写代码:它从未命中过onServiceConnected()
以下是我的代码的重要部分:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
Intent serviceIntent = new Intent(context, RingtonePlayingService.class);
context.startService(serviceIntent);
}
}
Run Code Online (Sandbox Code Playgroud)
来自以下活动的广播电话:
Intent intent = new Intent(AddAlarm.this, AlarmReceiver.class)
.putExtra("ALARM_ON", true);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Run Code Online (Sandbox Code Playgroud)
以下服务类别:
public class RingtonePlayingService extends Service {
// Player
MediaPlayer player;
boolean isRunning;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if …
Run Code Online (Sandbox Code Playgroud) service android exception android-mediaplayer android-studio
我已经面临这个问题很长时间了,我有一个具有很多功能的应用程序,其中之一就是闹钟
尽管我正在从通知管理器中调用cancelAll()
/cancel()
autoCancel
true
,但我的通知只是停留在那里并且永远不会消失,我也已设置为!它还保持可点击,我只需要它在触发操作后消失!
(我正在使用 Android Studio 的模拟器上进行测试,不确定这是否是问题所在)
我搜索了很多并尝试了很多东西但没有任何效果,所以我将不胜感激您的帮助:)
我已将通知设置如下:
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// ...
private void initNotification() {
setNotificationChannel();
notificationBuilder = new NotificationCompat.Builder(getApplicationContext(), notificationChannel.getId());
Intent click_intent = new Intent(getApplicationContext(), RingtonePlayingService.class)
.putExtra("intent_action", "click")
.putExtra("REQUEST_CODE", alarmRequestCode)
.putExtra("ID", alarmId);
PendingIntent click_pending = PendingIntent.getService(this, MainActivity.getRequestCode(), click_intent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent dismiss_intent = new Intent(getApplicationContext(), RingtonePlayingService.class)
.putExtra("intent_action", "dismiss")
.putExtra("REQUEST_CODE", alarmRequestCode)
.putExtra("ID", alarmId);
PendingIntent dismiss_pending = PendingIntent.getService(getApplicationContext(),MainActivity.getRequestCode(), dismiss_intent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent snooze_intent = new Intent(getApplicationContext(), RingtonePlayingService.class)
.putExtra("intent_action", "snooze")
.putExtra("REQUEST_CODE", alarmRequestCode) …
Run Code Online (Sandbox Code Playgroud) android notificationmanager android-notifications android-studio notification-channel