Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-在不运行时处理应用程序连接更改_Android_Android Activity_Android Lifecycle_Connectivity - Fatal编程技术网

Android-在不运行时处理应用程序连接更改

Android-在不运行时处理应用程序连接更改,android,android-activity,android-lifecycle,connectivity,Android,Android Activity,Android Lifecycle,Connectivity,我已经在我的应用程序中扩展了应用程序类。在该类中,我有一个BroadcastReceiver,它等待连接更改。如果完全连接丢失,我将显示特定的活动。但是,如果应用程序没有“聚焦”(不在前台),我不想显示该活动 但是,应用程序类没有onPause或onResume方法。如何仅在应用程序正在运行时显示此活动?我的所有活动都必须有一个广播接收器吗(有很多,我不能为所有活动创建一个扩展的活动,因为它们扩展了不同的活动类(活动、ListActivity、FragmentActivity等).只有一个Bro

我已经在我的应用程序中扩展了应用程序类。在该类中,我有一个BroadcastReceiver,它等待连接更改。如果完全连接丢失,我将显示特定的活动。但是,如果应用程序没有“聚焦”(不在前台),我不想显示该活动


但是,应用程序类没有onPause或onResume方法。如何仅在应用程序正在运行时显示此活动?我的所有活动都必须有一个广播接收器吗(有很多,我不能为所有活动创建一个扩展的活动,因为它们扩展了不同的活动类(活动、ListActivity、FragmentActivity等).只有一个BroadcastReceiver,当且仅当应用程序的一个活动位于前台时,才可以采取行动吗?

我想说,在自定义应用程序类中注册BroadcastReceiver是一种反模式。例如,您何时取消注册该接收器?如您所述,应用程序类缺少生命周期回调一个活动所拥有的(至少大部分)

在您的情况下,我将在onResume()回调中的所有活动中注册动态处理连接更改的接收器,并在onPause()中注销它们很有可能,您的所有活动都可以扩展FragmentActivity:Listactivity只是一个助手类,您可以自己轻松处理所有与列表相关的内容,FragmentActivity只是扩展了基本的Activity类

因此,我建议为您的活动创建一个自定义基类来处理接收方注册,它扩展了FragmentActivity。您的所有conrete活动类都应该扩展这个基类