android廣播activity
㈠ Android:開發中,在廣播接收器中顯示Activity為什麼要設置Intent.FLAG_ACTIVITY_NEW_TASK標記
告訴activity使用自己的任務棧來維護界面,因為自己沒有界面,沒有任務棧創建
㈡ Android開發中怎麼把廣播中處理後的信息傳遞給Activity
1.發送廣播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中創建一個內部類MyBroadcastReceiver擴展BroadcastReceiver,並在其中實現onReceive方法。
3.在Activity中聲明一個MyBroadcastReceiver類型的成員變數,並注冊:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完後要記得釋放
unregisterReceiver(receiver);
註:1和2中的 BroadcastAction要是同一個Action
㈢ activity是android四大組件之一嗎
是的。Activity是Android組件中最基本也是最為常見用的四大組件(Activity,Service服務,Content
Provider內容提供者,BroadcastReceiver廣播接收器)之一。
Activity詳解:
1、Activity是一個應用程序組件,提供一個屏幕,用戶可以用來交互為了完成某項任務。
2、Activity中所有操作都與用戶密切相關,是一個負責與用戶交互的組件,可以通過setContentView(View)來顯示指定控制項。
3、在一個android應用中,一個Activity通常就是一個單獨的屏幕,它上面可以顯示一些控制項也可以監聽並處理用戶的事件做出響應。Activity之間通過Intent進行通信。
備註:
Android開發的四大組件,本文主要分為:
1、Activity;
2、Service;
3、Broadcast
Receiver;
4、Content
Provider。
㈣ android中Activity發送廣播給Service
可以的。廣播的發送者將廣播發送到ActivityManagerService,ActivityManagerService接收到這個廣播以後,就會在自己的注冊中心查看有哪些廣播接收器訂閱了該廣播,然後把這個廣播逐一發送到這些廣播接收器中。
㈤ android 廣播靜態注冊怎麼指定activity
靜態注冊,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0" package="com.bn.ex2_1">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Sample2_1_Activity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 注冊自定義靜態廣播接收器 -->
<receiver android:name=".StaticReceiver">
<intent-filter>
<action android:name="com.bn.pp2.staticreceiver" />
</intent-filter>
</receiver>
</application>
</manifest>
㈥ android開發 service 和activity 廣播問題
這里我們先假定service發出內容時候的Action為ActionS。
如果activity里沒有動態注冊監聽service發出的ActionS的廣播, 即使Activity當前在使用中也不會得到通知, 更不用說未啟動的Activity來捕獲這個通知了。
要捕獲這個字元串有兩種方式, 分別如下
在AndroidManifest.xml中注冊
<receiver android:name="YourBroadcastReceiver" >
<intent-filter>
<action android:name="ActionS" />
</intent-filter>
</receiver>
這樣, 一旦有定義的ActionS發出來,YourBroadcastReceiver的onReceive方法就會回調了,這樣的監聽,不需要你的app已經在運行。你在onReceive方法里攔截處理。
2.在Activity中動態創建監聽器, onCreate()中生成一個IntentFilter對象
IntentFilter filter=new IntentFilter();
//為IntentFilter添加一個ActionS
filter.addAction(ActionS);
yourBroadcastReceiver = newYourBroadcastReceiver();
registerReceiver(yourBroadcastReceiver, filter);
在onDestroy的時候去注冊
unregisterReceiver(yourBroadcastReceiver);
這樣的方式只有在Activity生命周期onCreate()-onDestroy()之間有效, 在YourBroadcastReceiver.onReceive()方法里攔截處理。
㈦ android一個activity啟動時會向系統發送一個默認廣播嗎android.intent.category.LAUNCHER這個是廣播嗎
你要捕捉的話,自己寫一個廣播發送。有兩個方法,一個是動態注冊(就是需要是注冊發送),一個是靜態的。
想監聽的話,就是應用程序啟動的時候發送廣播。用service接受。我是這樣做的。類是音樂播放器,在退出應用它還會繼續播放。當再次點開始不影響播放,而且播放器上面的進度條和歌詞都是更新過的時時改變。
㈧ android開發如何在廣播里啟動一個 activity
Intent intent1=new Intent(context,main.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
System.out.println("進入鎖屏界面2");
㈨ android中Activity的方法怎麼用在BroadcastReceiver中
BroadcastReceiver中不是有 context么,可以直接獲得啊。 如果你不想這么做的話,加一個靜態的public static Context c ,實現其 set 和get方法 ,set裡面在初始化時候 MainActivity.c=MainActivity.this; 這樣在你的廣播裡面這樣調用 MainActivity.c.getSystemService();即可。
㈩ android-Android廣播怎麼傳遞數據給Activity
一種是像樓主所說的,在Activity里注冊一個BroadcastReceiver,Service完成某個任務就可以發一個廣播,接收器收到廣播後通知activity做相應的操作。 另一種是,使用bindService來關聯Service和Application,應用.apk里的所有組件一般情況都運行在同一個進程中,所以不需要用到IPC,bindService成功後,Service的Client可以得到Service返回的一個iBinder引用,具體的參見Service的文檔及onBind的例子,這樣Service的引用就可以通過返回的iBinder對象得到,如 public class LocalService extends Service { // This is the object that receives interactions from clients. See // RemoteService for a more complete example. private final IBinder mBinder = new LocalBinder(); public class LocalBinder extends Binder { LocalService getService() { return LocalService.this; } } @Override public IBinder onBind(Intent intent) { return mBinder; } } 之後Client通過這個iBinder對象得到Service對象引用之後,可以直接和Service通訊,比如讀取Service中的值或是調用Service的方法。