您的位置:首页 > 移动开发 > Android开发

监听开关机,发送广播

2016-07-20 12:38 375 查看
/**
监听开关机,发送广播
*/
public class BroadcastFragment extends BaseFragment implements View.OnClickListener {

private static final String KEY_TO_Activity = "com.dyc.test.TO_Activity";
private FirstBroadCast firstBroadcast;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}
@Override
public void initViews(ViewGroup rootView) {
Button firstsend = (Button) rootView.findViewById(R.id.sendfirst);
IntentFilter inf = new IntentFilter(KEY_TO_Activity);
firstBroadcast = new FirstBroadCast();
getContext().registerReceiver(firstBroadcast, inf);
firstsend.setOnClickListener(this);
}

@Override
public int getLayoutId() {
return R.layout.fragment_broadcast;
}

@Override
public void setViews() {

}

@Override
public void onDestroy() {
super.onDestroy();
getContext().unregisterReceiver(firstBroadcast);
}

@Override
public void onClick(View view) {
if (view.getId() == R.id.sendfirst) {
//发送广播
getContext().sendBroadcast(new Intent(KEY_TO_Activity));
}
}

class FirstBroadCast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
L.v(FirstBroadCast.class, "has recive first class");
Toast.makeText(context, "show toast has recive your send", Toast.LENGTH_SHORT).show();
}

}
public static class ShutDownReciver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
L.v(ShutDownReciver.class,"recive shutDown ");
}
}

public static  class BootCompleteBroadcastReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"recive boot complete",Toast.LENGTH_SHORT).show();;
L.v(BootCompleteBroadcastReciver.class, "has recive boot complete ");
}
}
}
//权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
//注册
<receiver android:name="com.dyc.test.fragment.BroadcastFragment$BootCompleteBroadcastReciver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
<receiver android:name=".fragment.BroadcastFragment$ShutDownReciver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN"></action>
</intent-filter>
</receiver>

<receiver android:name="com.dyc.test.fragment.MessageFragment$AutoSMS" android:exported="false">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
非常好用。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息