service-请问广播接受者不能发送广播吗?还是我写的代码有问题啊?

问题描述

请问广播接受者不能发送广播吗?还是我写的代码有问题啊?

public class netReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Intent wifi = new Intent();
    if(isWifi(context)){
        wifi = new Intent(context, MyService.class);
        context.startService(intent);
    }else{
        wifi.setAction("net.s5c.Changelink.wifiOff");
        sendBroadcast(wifi);
    }

    Toast.makeText(context, "监听到WIFI动作", Toast.LENGTH_LONG).show();
}

public static boolean isWifi(Context mContext) {
    ConnectivityManager connectivityManager = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
    if (activeNetInfo != null
            && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
        return true;
    }
    return false;
}

}

解决方案

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class netReceiver extends BroadcastReceiver {
    Intent wifi = new Intent();

    @SuppressWarnings("static-access")
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = manager.getActiveNetworkInfo();
        if (activeNetInfo != null
                && activeNetInfo.getType() == manager.TYPE_WIFI) {
            wifi = new Intent(context, MyService.class);
            wifi.setAction(MainActivity.ACCESSIBILITY_SERVICE);
            context.startService(wifi);
        }else{
            wifi.setAction("net.s5c.Changelink.wifiOff");
            context.sendBroadcast(wifi);
        }

    }
}

我又重写了一下,发现广播接收者多次接到广播还是不能启动起来服务,我知道我写的有问题,但那里有问题应该怎么写啊??

解决方案二:

可以发送的,这个没关系,你写的有问题

解决方案三:

启动服务的执行者是context,你的context是发送广播的context,也就是Activity,而不是该广播

时间: 2024-08-01 09:06:02

service-请问广播接受者不能发送广播吗?还是我写的代码有问题啊?的相关文章

service-[Android]Service里面发送广播消息出现问题[内有代码]

问题描述 [Android]Service里面发送广播消息出现问题[内有代码] package com.sample; // MainActivity.java import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter

java-Java广播相关问题,我到底应该使用什么广播地址才可以发送广播消息。谢谢

问题描述 Java广播相关问题,我到底应该使用什么广播地址才可以发送广播消息.谢谢 网上查询关于JAVA广播的问题,关于广播地址有一些问题.有的人说广播地址是D类地址,有人说广播地址是当前ip地址最后一位换成255,有人说广播地址是全部为255的地址,现在测试结果如果全部是255在本机发送广播本机可以收到,其他的D类地址无法收到TTL已经设置为128,最后一个换成255的会被MultiScoketCast抛出不是多播地址的异常.请问他们之间有什么区别和联系各个的用法又是如何. 现在问题:我当前i

broadcastreceiver-android BroadcastReceiver 中还可以再发送广播吗?

问题描述 android BroadcastReceiver 中还可以再发送广播吗? 想在onReceive中再发送个广播通知页面更新,但是不行 有没有什么好的方法达到类似效果 解决方案 可以的,你接收不到应该是你的问题,或者是接受者是嵌入2层以上的fragment 解决方案二: 利用handler 应该也可以. 解决方案三: 首先,广播收不到正常有两个原因,一是你没注册广播接受者,二是action过滤不对,好好的看看这些问题.其次,你这个更新UI的问题可以用Activity之间解耦的办法,比如

咨询UDP发送广播包的问题

问题描述 用UDP发送广播包,请问有什么代码例程?求学习谢谢. 解决方案 解决方案二:百度一大把

mina udp 广播-Android Mina框架是否支持UDPClient发送广播包?

问题描述 Android Mina框架是否支持UDPClient发送广播包? 如题,请问mina框架是否支持发送udp广播包,以下面代码发送,会提示服务器异常. // 创建一个tcp/ip 连接 //创建客户端连接器 Log.i("TAG","正在创建Socket连接!"); Log.i("TAG","PORT:"+PORT+",HostName:"+hostName); NioDatagramConnec

android-Android 自动旋转屏幕快捷开关,系统会发送广播吗?

问题描述 Android 自动旋转屏幕快捷开关,系统会发送广播吗? 10C 就是下图这里的自动旋转屏幕开关,开启和关闭自动旋转系统会发送广播吗?什么广播?怎么监听它的状态改变? 解决方案 屏幕旋转开关: 1). 屏幕旋转开关设置主要调用android.provider.Settings.System的putInt和getInt方法实现. 2). 通过ContentObserver来动态观察屏幕旋转设置的改变. 示例代码如下: package com.example.srs; import and

udp-UDP发送广播接受的问题

问题描述 UDP发送广播接受的问题 我使用UDP发送广播信息.广播发出一条信息.但是收到广播的每个IP都返回2个数据包. 现在我只能收到一个.为什么?

android 发送广播问题

问题描述 android 发送广播问题 在 application 调用sendBroadcast 相应的Receiver 会收到两次(也就是Receiver d的onReceive方法会执行两次) 这是为什么? 解决方案 http://www.cnblogs.com/zhouhb/p/4176678.html 参考下.收到两次说明你发了2次. 解决方案二: 这是为什么?应该是自己代码的问题,广播机制不存在你所说的问题.

activity-Activity发送广播, 在Intent里写入数据, 在广播里获取Intent的数据每次一样?

问题描述 Activity发送广播, 在Intent里写入数据, 在广播里获取Intent的数据每次一样? 我做一个定时任务, 时间到启动广播, 广播发送命令. 但广播每次从Intent的数据是一样的, 而我在Activity每次写入的数据不同, 是为什么?? 解决方案 没代码,叫我们怎么看 解决方案二: 同上,楼主你最好把自己实现的代码贴出来 解决方案三: 你把代码贴出来呀,没代码我们怎么看?