導航:首頁 > 操作系統 > android廣播啟動activity

android廣播啟動activity

發布時間:2022-07-25 02:33:36

android 模擬器開機自動啟動一個Activity問題

public class BootReceiver extends BroadcastReceiver {
public void onReceive(Context ctx, Intent intent) {
String action = "android.intent.action.BOOT_COMPLETED";
if (intent.getAction().equals(action)) {
Intent ss = new Intent(ctx, Hi.class);
ss.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(ss);
}
}

public class Hi extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello. I started!");
setContentView(tv);
}
}

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".Hi" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver android:name=".BootReceiver" >
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</manifest>
我測試了 可以的。

Ⅱ android廣播數據傳遞給activity 詳細點

1

class MyReceiver extends BroadcastReceiver{
/**
* 接收廣播
* @param context 上下文
* @param intent 就是通過sendBroadcast發送的Intent對象
*/
@Override
public void onReceive(Context context, Intent intent) {

}
}

2
//相當於搭電台
//定頻段
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("androidxx.intent.action.CCTV");
//注冊廣播接收器
myReceiver = new MyReceiver();
/**
* 參數一 BroadcastRecriver 對象
* 參數二 IntentFileer對象 此對象用於決定接受什麼頻道的廣播
*/
registerReceiver(myReceiver,intentFilter);

3
//發送廣播信息
Intent intent = new Intent();
intent.setAction("androidxx.intent.action.CCTV");
intent.putExtra("msg","中C");

4
sendBroadcast(intent);

Ⅲ android 啟動 activity 是什麼意思

當應用運行起來後就會開啟一條線程,線程中會運行一個任務棧,當Activity實例創建後就會放入任務棧中。Activity啟動模式的設置在AndroidManifest.xml文件中,通過配置Activity的屬性android:launchMode=""設置。

1. Standard模式(默認)

我們平時直接創建的Activity都是這種模式的Activity,這種模式的Activity的特點是:只要你創建了Activity實例,一旦激活該Activity,則會向任務棧中加入新創建的實例,退出Activity則會在任務棧中銷毀該實例。

2. SingleTop模式

這種模式會考慮當前要激活的Activity實例在任務棧中是否正處於棧頂,如果處於棧頂則無需重新創建新的實例,會重用已存在的實例,否則會在任務棧中創建新的實例。

3. SingleTask模式

如果任務棧中存在該模式的Activity實例,則把棧中該實例以上的Activity實例全部移除,調用該實例的newInstance()方法重用該Activity,使該實例處於棧頂位置,否則就重新創建一個新的Activity實例。

4. SingleInstance模式

當該模式Activity實例在任務棧中創建後,只要該實例還在任務棧中,即只要激活的是該類型的Activity,都會通過調用實例的newInstance()方法重用該Activity,此時使用的都是同一個Activity實例,它都會處於任務棧的棧頂。此模式一般用於載入較慢的,比較耗性能且不需要每次都重新創建的Activity。

Ⅳ 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 的Service裡面多次啟動一個Activity只能用FLAG_ACTIVITY_NEW_TASK,那麼怎麼才能只啟動一次呢

Activity只啟動一次,需要設置Activity的啟動模式。Activity啟動模式有4種,分別為standard、singleTop、singleTask、singleInstance,只要設置為 singleTask就只會啟動一次。

關於Activity四種啟動模式的說明:
1.standard 默認模式,可以不用寫配置。在這個模式下,都會默認創建一個新的實例。因此,在這種模式下,可以有多個相同的實例,也允許多個相同Activity疊加。

2.singleTop 可以有多個實例,但是不允許多個相同Activity疊加。即,如果Activity在棧頂的時候,啟動相同的Activity,不會創建新的實例,而會調用其onNewIntent方法。
3.singleTask 只有一個實例。在同一個應用程序中啟動他的時候,若Activity不存在,則會在當前task創建一個新的實例,若存在,則會把task中在其之上的其它Activity destory掉並調用它的onNewIntent方法。
3.singleInstance只有一個實例,並且這個實例獨立運行在一個task中,這個task只有這個實例,不允許有別的Activity存在。

Ⅶ android開發 service 和activity 廣播問題

這里我們先假定service發出內容時候的Action為ActionS。


如果activity里沒有動態注冊監聽service發出的ActionS的廣播, 即使Activity當前在使用中也不會得到通知, 更不用說未啟動的Activity來捕獲這個通知了。


要捕獲這個字元串有兩種方式, 分別如下

  1. 在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-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的方法。

Ⅸ Android 4.1.2 為什麼寫的廣播注冊後 必須運行一次activity才能...

SCREEN_ON和SCREEN_OFF只能在Activity和Service裡面用,廣播接收器不行,service不會自動啟動 查看更多答案>>

閱讀全文

與android廣播啟動activity相關的資料

熱點內容
mac壓縮解壓視頻 瀏覽:904
這就是程序員魅力 瀏覽:294
京東java演算法筆試題 瀏覽:178
柱子加密箍筋不準有接頭 瀏覽:199
我的世界伺服器菜單插件如何使用 瀏覽:12
劉毅10000詞pdf 瀏覽:890
剛畢業的程序員會什麼 瀏覽:974
單片機控制64路開關量 瀏覽:982
win10截圖編程 瀏覽:420
怎樣把名字變成文件夾 瀏覽:203
文件怎麼搞成文件夾 瀏覽:730
多線程編程php 瀏覽:606
安卓機越用越卡有什麼辦法 瀏覽:17
高中生解壓操場適合做的游戲 瀏覽:395
程序員java招聘 瀏覽:462
未來之光手機雲伺服器 瀏覽:160
伺服器下載資料為什麼c盤滿了 瀏覽:265
怎麼清除空文件夾 瀏覽:544
如何查看派派伺服器 瀏覽:804
殺手6解壓畫面 瀏覽:671