我已经尝试在活动中注册广播接收器,但我的接收器在应用程序onPause时无法正常工作.
所以我发现我需要在清单中注册我的接收器.
我的目标是在用户关闭Wifi后关闭我的应用程序一段时间.
这是我的代码但不起作用.
public class ReceiverWifi extends broadcastReceiver { @OverrIDe public voID onReceive(Context context,Intent intent) { Handler handler = new Handler(); Runnable runnable = new Runnable() { @OverrIDe public voID run() { MainActivity m = new MainActivity(); m.finish(); } }; if (intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) { int newWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_UNKNowN); switch (newWifiState) { case WifiManager.WIFI_STATE_Disabled: Toast.makeText(context,"Wi-fi disconnected ",Toast.LENGTH_SHORT).show(); handler.postDelayed(runnable,15 * 1000); break; } } }}
我的清单:
<receiver androID:name="com.example.wifimonitor.ReceiverWifi" > <intent-filter> <action androID:name="androID.net.wifi.WIFI_STATE_CHANGED" /> </intent-filter></receiver>
我如何实现目标?
解决方法 您的广播接收器是否在主要活动类中?如果是这样,您可以保存应用程序的全局上下文,稍后在广播接收器中关闭它.如果它位于服务或提供商上,只需在启动/注册时向其发送应用实例.然后从该实例调用finish().
编辑:
试试这个:
在您的主要活动中创建此公共方法:
public static voID closeActivity(){ finish(); }
然后在你的广播接收器中调用这个方法,如:
MainActivity.closeActivity();
希望能帮助到你 总结
以上是内存溢出为你收集整理的android – 从广播接收器关闭应用程序全部内容,希望文章能够帮你解决android – 从广播接收器关闭应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)