日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

从零开始学androidBroadCast广播.四十五.

發(fā)布時(shí)間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始学androidBroadCast广播.四十五. 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

與Service相似,在android中還有一種運(yùn)行在后臺(tái)的4大組件之一,他就是broadCcast,但是他不用考慮是否有接受的對(duì)象,只需要考慮發(fā)送即可。

要想使用BroadCast我們可以使用兩種方法

第一:將broadCcast配置到配置文件當(dāng)中。

第二:將broadCcast與class文件進(jìn)行綁定。


下面我們分別來(lái)進(jìn)行說(shuō)明。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="134dp"android:text="開(kāi)啟通知" /></RelativeLayout>

廣播類(lèi)


package com.example.broadcast;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast;public class BroadCastUtil extends BroadcastReceiver { public void BroadcastReceiver(){System.out.println("**一個(gè)廣播事件被建立"); }@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stub Toast.makeText(context, "廣播已經(jīng)啟動(dòng)", 2).show();}} 主文件
package com.example.broadcast;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button;public class MainActivity extends Activity {private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);button = (Button) this.findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// 設(shè)置過(guò)濾Intent intent = new Intent(Intent.ACTION_EDIT);// 開(kāi)啟廣播MainActivity.this.sendBroadcast(intent);}});}}


在 application節(jié)點(diǎn)下增加?配置

<receiver android:name="BroadCastUtil" android:enabled="true" ><intent-filter ><action android:name="android.intent.action.EDIT"/></intent-filter> </receiver>





? ? ? ? ? ??

使用registerReceiver(BroadcastReceiver, IntentFilter)進(jìn)行綁定過(guò)濾操作

其他的不用進(jìn)行改變只用改變

主文件 就OK

package com.example.broadcast;import android.app.Activity; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.widget.Button;public class MainActivity extends Activity {private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);button = (Button) this.findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// 設(shè)置過(guò)濾Intent intent = new Intent("com.example.broadcast");IntentFilter filter=new IntentFilter("com.example.broadcast");BroadCastUtil broadCastUtil=new BroadCastUtil();MainActivity.this.registerReceiver(broadCastUtil, filter);// 開(kāi)啟廣播MainActivity.this.sendBroadcast(intent);}});}}
這樣進(jìn)行綁定和配置的話,配置文件中就不需要配置信息了 。

使用廣播啟動(dòng)Service

Service

package com.example.broadecast2;import android.app.Service; import android.content.Intent; import android.os.IBinder;public class MyService extends Service {@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubSystem.out.println("** SERVICE onCreate");super.onCreate();}@Overridepublic void onDestroy() {// TODO Auto-generated method stubSystem.out.println("** SERVICE onDestroy");super.onDestroy();}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// TODO Auto-generated method stubSystem.out.println("** SERVICE onStartCommand");return Service.START_CONTINUATION_MASK;}}<strong> </strong>BroadCask

package com.example.broadecast2;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;public class MyBroadeCast extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent1) {context.startService(new Intent(context,MyService.class)) ;} }
Main

package com.example.broadecast2;import android.os.Bundle; import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; import android.view.Menu; //使用 廣播啟動(dòng)服務(wù) public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent intent =new Intent("com.example.broadecast2.DEMO");MainActivity.this.sendBroadcast(intent);}}



使用廣播進(jìn)行鬧鐘的控制

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TimePickerandroid:id="@+id/timePicker1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/button1"android:layout_alignBottom="@+id/button1"android:layout_alignParentRight="true"android:text="取消鬧鐘" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/timePicker1"android:layout_alignParentBottom="true"android:layout_marginBottom="30dp"android:text="設(shè)置鬧鐘" /><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@+id/button1"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_marginBottom="62dp"android:text="當(dāng)前未設(shè)置鬧鐘"android:textAppearance="?android:attr/textAppearanceLarge" /></RelativeLayout><strong> </strong>對(duì)話框
package com.example.broadcast3;import java.text.SimpleDateFormat; import java.util.Date; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle;public class AlertMessage extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);new AlertDialog.Builder(this).setIcon(R.drawable.b9).setTitle("鬧鐘時(shí)間到").setMessage("當(dāng)前時(shí)間為:"+ new SimpleDateFormat("yyyy年MM月dd日 HH時(shí) mm分 ss秒").format(new Date())).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubAlertMessage.this.finish();}}).create().show();} }
廣播類(lèi)

package com.example.broadcast3;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;public class MyBroadCast extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubIntent it = new Intent(context, AlertMessage.class);it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(it);}} Main

package com.example.broadcast3;import java.util.Calendar;import android.os.Bundle; import android.R.integer; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener; import android.widget.Toast;public class MainActivity extends Activity { private Button set,delete; private TextView info; private TimePicker time; private int hour ; private int minute; private Calendar calendar = Calendar.getInstance() ; private AlarmManager alarm;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);set=(Button)this.findViewById(R.id.button1);delete=(Button)this.findViewById(R.id.button2);info=(TextView)this.findViewById(R.id.textView1);time=(TimePicker)this.findViewById(R.id.timePicker1);time.setIs24HourView(true);this.alarm = (AlarmManager) super.getSystemService(Context.ALARM_SERVICE) ;time.setOnTimeChangedListener(new OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {// TODO Auto-generated method stubMainActivity.this.hour=hourOfDay;MainActivity.this.minute=minute;MainActivity.this.calendar.setTimeInMillis(System.currentTimeMillis()) ;MainActivity.this.calendar.set(Calendar.HOUR_OF_DAY, hourOfDay) ;MainActivity.this.calendar.set(Calendar.MINUTE, minute) ;MainActivity.this.calendar.set(Calendar.SECOND, 0) ;MainActivity.this.calendar.set(Calendar.MILLISECOND, 0) ;}});set.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent =new Intent(MainActivity.this, AlertMessage.class);intent.setAction("com.example.broadcast3");PendingIntent sender=PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);MainActivity.this.alarm.set(AlarmManager.RTC_WAKEUP,MainActivity.this.calendar.getTimeInMillis(), sender);MainActivity.this.info.setText("鬧鐘響起的時(shí)間是:"+ MainActivity.this.hour + "時(shí)"+ MainActivity.this.minute + "分。");Toast.makeText(MainActivity.this, "鬧鐘設(shè)置成功!",Toast.LENGTH_LONG).show();}});delete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif (MainActivity.this.alarm != null) {Intent intent = new Intent(MainActivity.this,MyBroadCast.class);intent.setAction("org.lxh.action.setalarm") ;PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);MainActivity.this.alarm.cancel(sender) ; // 取消MainActivity.this.info.setText("當(dāng)前沒(méi)有設(shè)置鬧鐘。") ;Toast.makeText(MainActivity.this, "鬧鐘刪除成功!",Toast.LENGTH_LONG).show();}}});}}



下節(jié)預(yù)報(bào):android基本繪圖


總結(jié)

以上是生活随笔為你收集整理的从零开始学androidBroadCast广播.四十五.的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。