在试图从BroadcastReceiver显示AlertDialog时,得到'你需要在这个活动中使用一个Theme.AppCompat主题(或其后代)。
我是从服务发送Broadcast,然后从Inner BroadcastReceiver类接收回来.我必须根据某些逻辑显示AlertDialog,但是在尝试这样做时,我会遇到此运行时错误:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 这是MyBroadcastReceiver类: public class MyBroadcastReceiver extends BroadcastReceiver { public MyBroadcastReceiver(){ super(); } @Override public void onReceive(final Context context, Intent intent) {
安卓系统。AlarmManager没有被解雇
我正在尝试在未来的计划时间内产生警报.以下是代码 mainActivity.java import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Me
0 2024-04-03
编程技术问答社区
安卓系统在应用关闭时保留BroadcastReceiver
我使用Action_Battery_changed的Broadcastreceiver每次电池为50%时进行活动.我无法在清单中声明Action_battery_changed,所以我在服务中声明了广播员(start_sticky). 但是,当我从最近的应用程序中删除该应用程序时,Broadcastreceiver停止进行电池更换事件. 如何将其保存在后台? *在许多显示状态栏中电池百分比的应用程序中,该应用程序关闭时将更新百分比.如何? 解决方案 您确实无法做自己想做的事情.没有办法使您的应用程序永远运行,您只能捕获Action_Battery_*您的应用程序正在运行的位置. 由于广播很粘,但是您可以做其他事情.设置一个警报(AlarmManager),以便定期唤醒应用程序.当您注册接收器时,在您的代码中,Android将在您的应用程序不运行时提供任何播放的意图.
安卓广播接收器在应用从运行中的应用列表关闭后未被调用
在尝试在Android应用中实现通知时,我看到如果用户从运行的应用程序列表中关闭应用程序(顶部滑动,然后水平滑动),则通知将不再起作用 - 无法正确戒断该应用程序根据Google规格的所有未来调用).使用后按钮有时会导致相同的行为,尽管并非总是如此. 我从我研究的所有内容中的理解是,只有用户停止的力量才能阻止广播接收器被调用. 这是来自Android清单的相关代码和设置,请注意,当应用程序打开或通过主页按钮左右时,所有这些都可以正常工作. Android表现相关部分:
在启动时启动一个安卓通知
这个问题基于我的以前的问题: android-设置通知永不消失 我现在意识到我需要在启动时触发一些东西才能触发通知. 从我以前的问题中,看来我可以走两条路线.要么开始服务,要么使用广播员.我认为开始服务有点过大(但我知道什么).我在乘坐广播路线时被困.它一般起作用,但是当我提到通知时,我会遇到很多错误. 这是我的代码: NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle("My notification") .setContentText("Hello World!"); //
2 2024-04-03
编程技术问答社区
如何在安卓系统中使用广播接收器停止一个正在运行的服务
我认为代码中有一个简单的问题,但我无法弄清楚.我有一个标题服务,该标题在某些特定应用程序上显示了一个泡泡弹出窗口.现在,我想要的是在用户使用BroadcastreCeiver按Home键或后键时停止该服务.请查看我的代码,并建议我一些解决方案. 预先感谢! 这是我的接收器类 public class PopupClosingReceiver extends BroadcastReceiver { private boolean isMyServiceRunning(Context con) { ActivityManager manager = (ActivityManager) con.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VAL
0 2024-04-03
编程技术问答社区
当应用程序从RAM中清除时,广播接收器无法工作
我是Android的新手.我正在做一个闹钟.它可以完美地工作,直到用户从RAM清除应用程序为止.在搜索时,我发现如果从RAM清除该应用程序,广播接收器无效.那么,我到底应该怎么做?会从服务帮助发送广播吗?另外,如果您有指向Android服务的良好教程的链接,请分享.还让我知道是否还有其他方法可以解决我的问题. 解决方案 在 xiaomi 设备中,您只需要将应用程序添加到 autostart 列表中,要这样做,请遵循以下简单步骤: 打开安全性在手机上的应用程序. 点击权限,它将向您展示两个选项:autostart和 权限 点击 autoStart ,它将显示您的应用程序列表,其中ONOR或OFF toggle 按钮. 打开应用程序的切换,您已经完成了! 其他解决方案 您可以在运行时或清单中的活动中注册广播接收器.您想采用后一种方法 其他解决方案 过去,我在AlarmManager,AlarmReceivers和此类问题上也有类似的问题.有一些
使用无活动服务的媒体按钮(耳麦挂钩)的监听器
如何使服务在Android设备中收听媒体按钮(耳机钩). 我尝试使用此代码来执行此操作,但无效. 你能帮我吗? 服务代码: public class RLservice extends IntentService { private Handler handler; public RLservice() { super("my service"); // TODO Auto-generated constructor stub } @Override public int onStartCommand(Intent intent, int flags, int startId) { handler = new Handler(); return super.onStartCommand(intent, flags, startId); } @Overr
0 2024-04-03
编程技术问答社区
从其类中调用服务方法
我有一项服务,我从中进行了我的ScreenReceiver课程.当触发ScreenReceiver方法时,如何通知服务?我希望在触发'OnRecieve'时要调用update()的方法. statechecker.java(草稿): public class StateChecker extends Service { //... // setting TimeAlarm TimeAlarm mTimeAlarm = new TimeAlarm(); mTimeAlarm.SetAlarm(this.getApplicationContext(),10); public void update() { //update sth } //... } ScreenReceiver.java(草稿): public class ScreenReceiver extends BroadcastReceiver { /
0 2024-04-03
编程技术问答社区
应用程序不能让设备进入睡眠模式
我正在开发一个正在使用activity的应用程序,该应用程序将在设备的默认锁定屏幕上.一切都很好,但是我对display timeout of the screen有问题.每次我的activity到来时,设备都不会进入睡眠模式.为什么? 这是我的Service类和BroadcastReceiver类的代码段.我可以找出什么阻碍了设备屏幕超时模式. broadcastreceiver类 @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { wasScreenOn = false; Intent intent11 = new Intent(context, LockActivity.class); intent11.add
0 2024-04-03
编程技术问答社区
Android 12 TargetsDkversion 31挑战(广播接收器,等待意图)崩溃问题
以下是我到目前为止遇到的挑战. 1)应用程序没有上传到存储 错误: - 您上传了一个APK或Android App Bundle,该捆绑包具有带有意图过滤器的活动,活动别名,服务或广播接收器,但没有'Android:导出的'属性集.该文件不能安装在Android 12或更高版本上.请参阅:developer.android.com/about/versions/12/behavior-changes-12#exported 2)应用程序崩溃 java.lang.illegalargumentException:定位S+(版本31及更高版本)要求在创建pendingIntent时指定flag_immutable或flag_mutable之一. 强烈考虑使用flag_immutable,只有在某些功能取决于悬浮词是可变的,例如如果需要与内联回复或气泡一起使用. flag_immutable/flag_mutable 所有待处理意图都需要标签 请帮助如何解决这些问题???? 解
为什么广播接收机只在华为设备上造成ANR?
我有一个广播接收器(已声明),该接收器会倾听意图并启动Jobintentservice.由于JobIntentservice使用工作线程,并且广播接收器没有任何重型操作(它只是接收意图并调用Jobintentservice).广播接收器中不应该有任何ANR的原因.另外,我只在华为设备上获得ANRS. 这是我广播接收器的代码: public class SessionReceiver extends BroadcastReceiver { private static final String TAG = "SessionReceiver"; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction() == null) return; Log.d(TAG, "onReceive: called");
0 2024-04-03
编程技术问答社区
安卓:无法在Oreo+设备以上的应用程序之间同步数据
我仅在Oreo+设备中的2个应用程序之间陷入同步实时数据,例如,如果使用不同的用户登录到该应用程序,则应在其他应用程序中立即效应,并且还应在其他应用程序中更改.(例如,Facebook和Facebook Messenger.如果您从Facebook注销,它将自动从FB Messenger注销,或者如果您登录到Facebook,则它将自动登录到FB Messenger,反之亦然)我在应用程序中创建了广播接收器,并且如果从一个应用程序中更改登录名,则将发送广播发送广播到其他将在其余工作中进行的应用程序. 我在上面搜索过谷歌搜索,我找到了一些方法. 我已经阅读了此文档 https://developer.android.com/android.com/about.com/about/erversions/oreo/oreo/oreo/background 我们发布了不同的签名APK,因此无法在接收方中提供相同的签名许可. 已经通过此链接 广播接收器在Oreo
在Xamarin Android中用BroadcastReceiver从通知中调用服务方法
我启动服务并创建新线程(下载大文件).同时,我显示带有操作的通知(暂停按钮). 当我按下此按钮" wstrzymaj"时,我想从我的服务中调用pausedownload()方法.我该怎么做?我已经阅读了有关Broadcastreceiver,创建此类,但是如何从Broadcastreceiver类中调用方法? 通知中的屏幕: 我服务的片段: class DownloadsService : Service { DownloadsBroadcastReceiver receiver; Notification.Builder notificationBuilder; DownloadsData downloadsData; int uniqueNumber = 1000; bool isStarted; public override StartCommandResult OnStartCommand(Intent intent
为什么我的BroadcastReceiver在一段时间后停止接收?
我有一个IntentService的工作,大约需要15分钟才能完成.这是一个从我的服务器获取新数据的同步过程. 当此服务启动时,我也开始一个活动以显示进度. 此活动创建了一个BroadcastReceiver,该活动拦截了从服务中发送的有关过程进度的消息. 如果我离开该应用程序工作,一段时间后,请关闭屏幕. 当我再次在屏幕上重新打开屏幕,大约15分钟后,已经完成了该服务,但是进度似乎已经过时了. BroadcastReceiver已经停止工作,并且活动尚未收到我的END OF SYNCHRONIZATION消息. 问题是,在此消息中,我再次启动主要活动,以使用户再次使用该应用程序. 我该如何解决? 解决方案 我用此 http:/http://developer.android.com/intl/pt-br/guide/components/services.html#foreground . 我的服务 public class My
2 2024-04-03
编程技术问答社区
在 "服务 "类中运行新的 "runnableThread "时出现java.lang.ClassCastException
我有一个应用程序,包含一个broadcastReceiver,它听到所有新的收到的SMS .如果收到此BroadcastReceiver的任何新SMS启动了一个运行GPS并返回坐标的背景Service,则此坐标检索需要一个新线程,在服务类中没有getApplicationContext(),所以我使用了'getContentBase( )'对于启动新线程,这是代码 ((活动)getBaseContext()).runonuithread(new runnable(){ ((Activity)getBaseContext()).runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method s
4 2024-04-03
编程技术问答社区
来自IntentService的registerReceiver并没有击中BroadcastReceiver。
我创建了一个IntentService,用于使用Android的下载管理器下载文件.以下是我的班级: public class DownloadService extends IntentService { public DownloadService() { super("name"); } BroadcastReceiver onComplete = new BroadcastReceiver() { public void onReceive(Context ctxt, Intent intent) { function(); } }; @Override protected void onHandleIntent(Intent intent) { registerReceiver(onComplete, new IntentFi
2 2024-04-03
编程技术问答社区
基于Activity&39;s Broadcast Receiver更新片段ui
首先,我说我已经阅读了许多与片段有关的问题.但是,我似乎找不到与我的情况完全相同的情况. 我有使用pageadapter的肌无力,每个页面都是片段.我还拥有一项服务,可以接收有关网络连接等的更新.服务以肌无力触发接收器. MyActivity需要更新FragmentPage1,但是由于我使用的是PageAdapter并在运行时创建片段,所以我无法" FindfragmentById"等.我不需要传递任何数据,我只需要触发FragmentPage1类内的功能.请参阅下面的代码段. public class myActivity extends FragmentActivity implements ViewPager.OnPageChangeListener { FragmentManager fm = getSupportFragmentManager(); mPagerAdapter = new PagerAdapter(fm); mPager.s
2 2024-04-03
编程技术问答社区
使用AlarmManager每隔20秒运行一次安卓服务,在从应用列表中删除应用时不会重新启动。
我正在尝试运行一次Android服务,该服务每20秒钟在后台运行,并将用户的纬度数据发送到服务器以进行跟踪.启动应用程序时,它首次工作.现在,如果我单击"主"按钮,它仍然在后台运行.但是,现在,如果我使用"主页"按钮从应用程序列表中杀死我的应用程序.并使用启动器图标重新启动我的应用程序.现在服务没有启动.我使用警报管理器每20秒后触发我的服务.但是在重新启动时,我的警报是设置的,但没有在广播接收器上注册,因此我的服务未调用. 以下是我的代码: - myFragment.java的oncreateview()我在哪里设置警报: - Intent alarm = new Intent(mContext, AlarmReceiver.class); boolean alarmRunning = (PendingIntent.getBroadcast(mContext, 0, alarm, PendingIntent.FLAG_NO_CREATE) != null); if