Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 从广播接收器关闭应用程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 android编程的新手.
我已经尝试在活动中注册广播接收器,但我的接收器在应用程序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>

如何实现目标?

解决方法@H_874_24@
您的广播接收器是否在主要活动类中?如果是这样,您可以保存应用程序的全局上下文,稍后在广播接收器中关闭它.

如果它位于服务或提供商上,只需在启动/注册时向其发送应用实例.然后从该实例调用finish().

编辑:

试试这个:

在您的主要活动中创建此公共方法

public static void closeActivity(){
        finish();
   }

然后在你的广播接收器中调用这个方法,如:

@H_226_13@mainActivity.closeActivity();

希望能帮助到你

本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

大佬总结

以上是大佬教程为你收集整理的android – 从广播接收器关闭应用程序全部内容,希望文章能够帮你解决android – 从广播接收器关闭应用程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。