广播接收者和暂停的活动
我在活动中有一个编程注册的广播接收器.它响应PACKAGE_REMOVED意图,当包裹被删除时会发射. 问题是,它不会收到此消息.我认为这是由于当我离开活动并移至另一个活动以卸载应用程序时,就会发出意图,因此暂停了原始活动. 可能是暂停的活动(在onPause中未注册的接收器)也会停止接收器? 解决方案 当您以活动为编程中注册广播接收器时,在暂停活动时不会获得广播. Broadcastreceiver docs 并不那么清楚.他们建议仅在Onpar上进行注册,以减少系统开销. 即使您的活动不在前景中,您也想接收事件,请使用接收者元素. 其他解决方案 添加接收者甚至在不启动应用程序的情况下获得此事件. public class TestReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {
0 2024-04-03
编程技术问答社区
通过多种活动保持安卓蓝牙连接
我正在构建一个通过蓝牙与Arduino板进行通信的Android应用程序,我在其类别的BlueComms中具有蓝牙代码.要连接到设备,我使用以下methord: public boolean connectDevice() { CheckBt(); BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); Log.d(TAG, "Connecting to ... " + device); mBluetoothAdapter.cancelDiscovery(); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); btSocket.connect(); outStream = btSocket.getOutputStream();
2 2024-04-01
编程技术问答社区
背景中的安卓活动
我在Android中有一个问题. 如果我的活动类与外部库相互作用.我正在研究的库必须在应用程序进入后台或返回前景时进行一些过程. 是否有任何方法可以知道应用程序何时进入背景. 注意:我不想在活动中做任何事情.调用Onpause时,我不想将回调发送到库. 谢谢 解决方案 如果我理解了您的问题,则可以使用 application.registeractivityLifecyClecallbacks 并实现自己的类似: class myActivityLifecycleHandler implements ActivityLifecycleCallbacks{ // Methods implementation here } yourActivity.getApplication().registerActivityLifecycleCallbacks(new myActivityLifecycleHandler()) 其他解决方案 您可以在应用到
0 2024-03-27
编程技术问答社区
如何停止活动中的所有声音?
我的应用程序Acitvity中有很多媒体播放器的声音,并且我有按钮可以停止所有正在播放的声音,但它占用了很大的空间,我想知道代码如何同时停止所有Mediplayer声音强>不喜欢这个: sadegfqc.pause(); dsfsdf.pause(); sadfsadfsad.pause(); dsfg.pause(); htzh.pause(); nensmene.pause(); fdshs.pause(); gshtrhtr.pause(); hfshztjr.pause(); sgawg.pause(); 然后,我必须再次用源来调用所有Mediaplayer的创建. 这样: dsfsadf= MediaPlayer.create(this, R.raw.dsfsadf); 解决方案 Soundpool是为此目的更好的选择.我会强烈警告不要实例化多个媒体播放器实例,因为大多数系统没
2 2024-03-19
编程技术问答社区
如何在暂停和恢复时将其静音和取消静音
当我设置音频静音时,我遇到了问题 代码: protected void onPause() { super.onPause(); Log.d(TAG, "onPause"); setStreamMute(true); } protected void onResume() { super.onResume(); Log.d(TAG, "onResume"); setStreamMute(false); } public void setStreamMute (boolean state){ Log.d(TAG,"SetMute: "+state); myAudioManager = (AudioManager)ge
4 2024-03-19
编程技术问答社区
具有片段onPause()、onResume()的ViewPager?
与片段一起使用ViewPager时,我们的onPause,onResume在两个选项卡之间移动时未调用.当我们变得可见或隐藏时,有什么办法可以在碎片中弄清楚? 不幸的是,我在onResume,onPause中具有逻辑,就像在位置服务上注册一样,在切换选项卡时永远不会停止,因为onPause直到一个退出整个应用程序. . 解决方案 ViewPager带有界面.通过为上一个和当前显示的页面设置一些标志,您可以模拟此行为. 其他解决方案 考虑到以前的解决方案不是很清楚,这是我如何解决它的提示: 在OnPageChange()回调中: Fragment old_fragment = getActiveFragment(old_position); Fragment new_fragment = getActiveFragment(new_position); old_f.setUserVisibleHint(false); ol
8 2024-02-19
编程技术问答社区
如何在应用程序暂停或销毁时停止服务,但在切换到新活动时不停止?
目前,我有一个Service我用来在应用程序打开时在背景中播放声音文件: public class BackgroundSoundService extends Service { MediaPlayer player; public IBinder onBind(Intent arg0) { return null; } @Override public void onCreate() { super.onCreate(); player = MediaPlayer.create(this, R.raw.sound); player.setLooping(true); player.setVolume(100, 100); } public int onStartCommand(Intent intent, int flags, int
0 2024-02-17
编程技术问答社区
如果Activity.onDestroy()没有被可靠地调用,为什么要重写它?
我很困惑为什么有人会覆盖Activity.onDestroy()而不是onPause(),如果根据文档: 在某些情况下,系统只会杀死活动的 托管过程而无需调用此方法(或任何其他方法), 尽管警告了,但我看到了许多覆盖onDestroy()的代码.为什么? 解决方案 为什么不可靠地调用active.ondestroy()? 并不是说它不是可靠地称为...这只是Activity可以被杀死的唯一途径.如果您的设备开始缺乏内存资源,Android系统可能会浪费您的整个过程,而无需给予ActivityManager拨打onDestroy(). 因此,您永远不应依靠onDestroy()被调用,并且您应该始终在onPause中保存持久状态. 如果该过程直接杀死该过程,则该活动持有的对象将被摧毁.如果未杀死该过程(调用onDestroy()),则必须在需要时手动释放对象.例如,当该过程被杀死时,光标将被销毁,但是如果该过程没有被摧毁,并且您反复进入活动,则会有资源
12 2024-02-16
编程技术问答社区
onCreate()在Activity停止(但未销毁)时被调用。只有在安装后
我正在研究一个针对API 19的应用程序,这基本上是一个处理草图. 我面临的问题是,我的应用程序第一次运行,在安装它后,它运行良好,直到用户将其发送到后台为止.然后,如果他们再次单击应用程序图标,则调用ongreate(),但活动未破坏或重新启动.有些变量发生了变化,会产生奇怪的行为. 这仅在第一次使用该应用程序时就会发生.武力关闭它之后,这种行为将不会再发生了(据我测试).从Eclipse启动该应用程序时,这也不会发生. 总而言之,这是第一力关闭后发生的事情(我认为正确的): 活动正在运行. 活动通过主页按钮 发送到返回 onpause() 我们再次单击应用程序图标 onResume() 这就是发生的情况 - 仅在安装后首次运行该应用程序: 活动正在运行. 活动通过主页按钮 发送到返回 onpause() 我们再次单击应用程序图标 oncreate() onResume() 我想知道我正
0 2024-02-16
编程技术问答社区
android-没有ArrayAdapter的默认构造函数
i制作适配器以使我的书籍收藏在列表视图中可见. 如果我添加超级(上下文,位置),则解决问题: public BookAdapter(Context context, int position, List updatedBooksList) { super(context, position); this.context = context; this.booksList = updatedBooksList ; } 但是,我想知道为什么我需要这个参数(int位置)并调用超类构造函数? protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 另外,从更广泛的意义上讲,为什么我们总是(?)需要在每个on Create中像这里一样呼叫super. 我们不应该覆盖我们所有活动生命周期阶段 -
8 2024-02-16
编程技术问答社区
安卓。在什么情况下,出现的对话框会导致onPause()被调用?
Android 前景寿命"线说: 一项活动经常可以过渡到前景 - 因为 例如,onPause()设备入睡 或 对话框出现 . 我不太明白.在什么情况下应该发生? onPause()仅当相关对话框的上下文与要显示对话框的活动不同时才调用? 编辑:添加代码示例以详细说明我的疑问 通过文档上述报价进行上述报价,当我的活动的onPause()方法是否应在显示以下代码中的AlertDialog(或只是Dialog)时被调用?显示对话框时,我应该看到" on onpause"日志条目? ,但我看不到这种情况.如果我正确理解了Android生命周期,也不应该这样做!那么,指向什么文件? public class LifeCycleTestActivity extends Activity { private static final String TAG = "LifeCycleTest"; /** Called when the activit
2 2024-02-16
编程技术问答社区
保存动态添加的LinearLayouts而不使用saidInstanceState?
我有一个布局,在该布局中,我在按钮的按钮时动态添加了自定义视图.这些布局扩展了线性延伸,每个布局都带有自己独特的动作对象. 当用户导航或旋转屏幕时,视图将消失,但是,如果再次调用ongreate.我想将这些自定义的驱逐器的观点保留在那里.为了增加问题,驱逐器对象包含敏感信息.动作对象本身存储了一个实时计时器(即使应用程序关闭,也应该继续勾选)以及其他信息. 根据下面的答案,我做了以下操作,但无济于事.这是我到目前为止所拥有的: public class ActionHolder extends LinearLayout implements Serializable { /** * */ private static final long serialVersionUID = 2271402255369440088L; private Action action; private String timer; public
0 2024-02-16
编程技术问答社区
活动中的onPause()和onStop()。
我是Android开发的新手,我仍然无法理解活动中的onPause()和onStop()方法. 在我的应用程序中,我有一个静态类,可以命名计数器,并且可以将变量的状态保留在该应用程序的内存中.我的应用在模拟器中运行良好.我试图测试的是onPause()与onStop()的差异行为. 对于onPause,我想要保留在计数类成员中的值,而调用onStop()我希望计数器值重置为零.因此,我覆盖onStop(),然后将计数类内部的变量设置为零.但是,在模拟器中,我似乎无法将该应用程序处于暂停状态.在模拟器中,我打开我的应用程序,锻炼它.然后,我点击模拟器的"主页"按钮(不是后面按钮),然后启动另一个应用程序,认为这会模仿onPause()活动.但是,仿真器似乎并没有尊重这一点(我使用的是Armeabi V7A仿真器),它似乎总是在调用onStop(),因为我的计数器值全部返回到零,因为我在onStop()中的覆盖率.这是模拟器固有的还是我做错了什么以将我的活动进入暂停状态?
6 2024-02-14
编程技术问答社区
安卓的onResume没有被调用
我正在为Android开发一个应用程序,我希望当您按下"主页"按钮(Onpause)时暂停音乐.效果很好,但是当我尝试再次启动游戏时,Onresume,Onrestart,Onstart,OnrestoreInstancestate和OnCreate从未被调用,它告诉我该应用程序没有响应. LogCat中没有例外...所以我不知道发生了什么.有人对为什么会这样有任何建议吗? -edit- 当应用程序暂停时,我确实会在logcat中遇到此错误: 04-16 20:09:32.659:错误/活动管理器(66):原因:意图广播{act = android.intent.close_sation.close_system_dialogs cmp = com.android.settings/.widget.settings.settings.settings.settingsappwidgetProvider(Extras) } 我的onpause()代码: pu
6 2024-02-12
编程技术问答社区
安卓。当一个应用程序作为一个整体(而不是单个活动)被暂停/退出时进行检测?
我的应用程序中的活动之一启动/绑定到服务(也是我应用程序的一部分).我希望该服务继续运行,只要整个应用程序仍在前景中,无论哪种活动是活动的.但是我需要确保当应用程序整体暂停时停止服务(主页/后背按钮). 我该如何在应用程序级别而不是活动级别上执行此操作? 解决方案 最简单的方法是拥有一个单身人士,该单元可以跟踪每种活动的状态,例如,仅显示一个活动作为一个例子: public class ActivityStates { private static ActivityStates ref = null; private static int firstAct = ACTIVITY_GONE; public static synchronized ActivityStates getInstance() { if (ref == null) { ref = new ActivityState
4 2024-02-12
编程技术问答社区
暂停时改变屏幕亮度(安卓应用)
我的应用程序保存了用户原始亮度: originalBrightness = Settings.System.SCREEN_BRIGHTNESS; 然后在程序运行时更改它. 原始范围是私人全局字符串.现在,我要做的是用户单击"主页"或应用程序暂停时需要再次设置原始屏幕时,我尝试这样做,但是应用程序会遇到: : public void onPause() { super.onPause(); int brightness = Integer.getInteger(originalBrightness); setBrightness(brightness); } private void setBrightness(int brightness) { WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.screen
6 2024-02-12
编程技术问答社区
我们能否在startActivity()之后,在它被暂停之前执行代码?
我的问题是... 如果我们尝试在startActivity()之后执行一些代码知道当包含它的方法到达末端时(finish()方法发生的事情). 我有一个示例,在基于某些条件开始新活动后,我想在其中detach()一个对象(具有数据库连接),但是我需要此对象来评估一种条件.我知道我可以检查该条件并在第一个if之前存储布尔值和detach(),但是我想知道以下代码是否为"法律". 谢谢! protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); School selectedSchool = new School((Cursor)l.getItemAtPosition(position)); mSharedPreferences.edit() .putLong(Da
16 2024-02-12
编程技术问答社区
如何检测安卓应用何时被最小化?
如何检测Android应用何时进入背景? OnPause()或Onuserleavehint()有效,但在更改方向或提出另一个活动时也称为. 解决方案 如果方向更改,应用程序将再次通过生命周期来调用,这意味着 您也可以通过将以下代码写入清单 来避免它 这告诉系统,当方向更改或键盘隐藏或Screenlayout更改时,我将自己处理它无需重新创建它. 然后在暂停上写下您的代码 其他解决方案 标记的答案是OP问题的解决方法. 对于我们其他正在寻找答案的人,您可以使用 Android架构组件 来实现此目标 import android.arch.li
2 2024-02-12
编程技术问答社区
活动生命周期 安卓
我已经在这里和其他地方阅读了有关生命周期的几篇文章,但我仍然感到困惑.我们在Onpause中存储了什么,我们如何存储它,以及您如何在Onresume方法中记得它.更多信息,如果可能的话,将不胜感激. 解决方案 这是您的意思 进一步说明 onCreate(Bundle)是您初始化活动的地方.最重要的是,在这里,您通常会使用定义UI的布局资源调用SetContentView(INT),并使用FindViewById(INT)来检索您需要在程序上与该UI中的小部件进行检索. > onPause()是您与用户打交道的地方.最重要的是,此时用户所做的任何更改都应进行(通常是持有数据的内容). onResume()在OnrestoreInstancestate(bundle),onrestart()或onpause()之后,请致电您的活动开始与用户进行交互.这是一个开始动画,打开独家访问设备(例如相机)等的好地方,等等 onDestroy()在销毁活动之前执行任何最终清理
2 2024-02-12
编程技术问答社区