導航:首頁 > 操作系統 > androidintent啟動方式

androidintent啟動方式

發布時間:2022-08-18 12:18:16

Ⅰ 安卓 怎麼通過intent啟動一個service 博客

第一步:首先創建一個廣播接收者,重構其抽象方法
onReceive(Context
context,
Intent
intent),在其中啟動你想要啟動的Service或app。
import
android.content.BroadcastReceiver;
import
android.content.Context;
import
android.content.Intent;
import
android.util.Log;
public
class
BootBroadcastReceiver
extends
BroadcastReceiver
{
//重寫onReceive方法
@Override
public
void
onReceive(Context
context,
Intent
intent)
{
//後邊的XXX.class就是要啟動的服務
Intent
service
=
new
Intent(context,XXXclass);
context.startService(service);
Log.v("TAG",
"開機自動服務自動啟動.....");
//啟動應用,參數為需要自動啟動的應用的包名
...展開第一步:首先創建一個廣播接收者,重構其抽象方法
onReceive(Context
context,
Intent
intent),在其中啟動你想要啟動的Service或app。
import
android.content.BroadcastReceiver;
import
android.content.Context;
import
android.content.Intent;
import
android.util.Log;
public
class
BootBroadcastReceiver
extends
BroadcastReceiver
{
//重寫onReceive方法
@Override
public
void
onReceive(Context
context,
Intent
intent)
{
//後邊的XXX.class就是要啟動的服務
Intent
service
=
new
Intent(context,XXXclass);
context.startService(service);
Log.v("TAG",
"開機自動服務自動啟動.....");
//啟動應用,參數為需要自動啟動的應用的包名
Intent
intent
=
getPackageManager().getLaunchIntentForPackage(packageName);
context.startActivity(intent
);
}
}
第二步:配置xml文件,在receiver接收這種添加intent-filter配置
<receiver
android:name="BootBroadcastReceiver">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED"></action>
<category
android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</receiver>
第三步:添加許可權
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
/>收起

Ⅱ android Intent啟動其它應用

可以帶別的東西。
需要com.rarlab.rar.MainActivity類的支持。
com.rarlab.rar.MainActivity可以在onCreate中通過getIntent來得到
傳入來的intent.
intent可以設置一些數據,比如Intent.putExtra("type","rar")
然後onCreate得到後,可以Intent.getStringExtra("type")

Ⅲ android 主activity用什麼啟動模式

在android里,有4種activity的啟動模式,分別為:
「standard」 (默認)
「singleTop」
「singleTask」
「singleInstance」

1. 如何決定所屬task
「standard」和」singleTop」的activity的目標task,和收到的Intent的發送者在同一個task內,除非intent包括參數FLAG_ACTIVITY_NEW_TASK。
如果提供了FLAG_ACTIVITY_NEW_TASK參數,會啟動到別的task里。
2. 是否允許多個實例
「standard」和」singleTop」可以被實例化多次,並且存在於不同的task中,且一個task可以包括一個activity的多個實例;
「singleTask」和」singleInstance」則限制只生成一個實例,並且是task的根元素。
singleTop要求如果創建intent的時候棧頂已經有要創建 的Activity的實例,則將intent發送給該實例,而不發送給新的實例。

3. 是否允許其它activity存在於本task內
「singleInstance」獨佔一個task,其它activity不能存在那個task里;如果它啟動了一個新的activity,不管新的activity的launch mode 如何,新的activity都將會到別的task里運行(如同加了FLAG_ACTIVITY_NEW_TASK參數)。
而另外三種模式,則可以和其它activity共存。

4. 是否每次都生成新實例
「standard」對於沒一個啟動Intent都會生成一個activity的新實例;
「singleTop」的activity如果在task的棧頂的話,則不生成新的該activity的實例,直接使用棧頂的實例,否則,生成該activity的實例。
比如現在task棧元素為A-B-C-D(D在棧頂),這時候給D發一個啟動intent,如果D是 「standard」的,則生成D的一個新實例,棧變為A-B-C-D-D。
如果D是singleTop的話,則不會生產D的新實例,棧狀態仍為A-B-C-D
如果這時候給B發Intent的話,不管B的launchmode是」standard」 還是 「singleTop」 ,都會生成B的新實例,棧狀態變為A-B-C-D-B。

「singleInstance」是其所在棧的唯一activity,它會每次都被重用。

「singleTask」如果在棧頂,則接受intent,否則,該intent會被丟棄,但是該task仍會回到前台。

當已經存在的activity實例處理新的intent時候,會調用onNewIntent()方法
如果收到intent生成一個activity實例,那麼用戶可以通過back鍵回到上一個狀態;如果是已經存在的一個activity來處理這個intent的話,用戶不能通過按back鍵返回到這之前的狀態。

總結如下:
standard 每次都會新建,每個Task都可以有,且每個Task都可以有多個實例(每個Task都可以有,且可以有多個)
singleTop 當前實例如果在棧頂,就不新建實例,調用其OnNewIntent。 如不在棧頂,則新建實例 (每個Task都可以有,且可以有多個,在棧頂時可復用)
singleTask 新建一個Task,如果已經有其他的Task並且包含該實例,那就直接調用那個Task的實例。(只有一個Task中會有)
singleInstance 新建一個Task,且在該Task中只有它的唯一一個實例。 (只有一個Task會有,且該Task中只有它)

FLAG_ACTIVITY_NEW_TASK 類似singleTask
FLAG_ACTIVITY_SINGLE_TOP 類似singleTop
FLAG_ACTIVITY_CLEAR_TOP 無對應

Ⅳ android中intent啟動Activity問題

答:一.利用intent(Activity1.this,***.class)方法
二.利用intent的ComponentName屬性直接指定包名方法 。這兩個實際表達的意思是一樣的,都是屬於顯示匹配,不經過IntentFilter過濾,現在的問題是能否使得這個源Acitivity.java類訪問目標Activity2.java類,這跟Activity2.java修飾符有關系。public的情況下,可以啟動同一個項目另一個包中的Activity.default情況下,能啟動同一個包中的。
三.Intent隱式匹配3種情況都可以。

望採納

Ⅳ Android開發中Intent的具體用法

Intent這個東西有太多可以說的了,如果你是初學你只要了解他的顯式調用,比如你要從activity1跳轉到activity2,在activity1裡面執行下面的語句,就能跳轉到activity2裡面,別忘記在manifest.xml裡面把activity2定義一下。
Intent intent = new Intent(activity1.this, activity2.class);
startActivity(intent);
這是最簡單的方式,當然這種方式也可以傳送數據(從activity1到activity2中),比如
Intent intent = new Intent(activity1.this, activity2.class);
intent.putExtra("name", "value");
startActivity(intent);
然後在activity2裡面接收的地方,onResume或者onCreate方法裡面調用獲取Intent的方法
Intent getIntent = getIntent();
Bundle bundle = intent.getExtras();
String va = bundle.getString("name");

以上是顯式調用的基本用法,Intent的精髓還是在隱式調用,如果你有疑問可以跟問題。

Ⅵ android開發怎麼讓app實現自啟動

Android中也可很方便的實現類似windows中的開機啟動。 方法很簡單,就是注冊一個BroadcastReceiver 去接收 actoin 為 android.intent.action.BOOT_COMPLETED 的消息,然後即可啟動Activity了。 首先在menifest 文件中添加許可權聲明,因為接收BOOT_COMPLETED消息需要RECEIVE_BOOT_COMPLETED 許可權 Xml代碼 1.<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 通過在menifest xml文件中配置的方式注冊一個Receiver Xml代碼 1.<receiver 2. android:name=".BootUpReceiver" 3. android:enabled="true" 4. android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > 5. <intent-filter> 6. <action android:name="android.intent.action.BOOT_COMPLETED" /> 7. 8. <category android:name="android.intent.category.DEFAULT" /> 9. </intent-filter> 10. </receiver> <receiver android:name=".BootUpReceiver" android:enabled="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 在Receiver的onReceive方法中啟動Activity Java代碼 1.public class BootUpReceiver extends BroadcastReceiver { 2. 3. @Override 4. public void onReceive(Context context, Intent intent) { 5. Intent i = new Intent(context, MyActivity.class); 6. i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 7. context.startActivity(i); 8. } 9.}

Ⅶ android activity怎麼更改啟動方式

Android總Activity的啟動模式分為四種:

Activity啟動模式設置(AndroidManifest文件):

<activity android:name=".MainActivity" android:launchMode="standard" />

Activity的四種啟動模式:

1. standard

模式啟動模式,每次激活Activity時都會創建Activity,並放入任務棧中。

2. singleTop

如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,否者就會創建新的實例並放入棧頂(即使棧中已經存在該Activity實例,只要不在棧頂,都會創建實例)。

3. singleTask

如果在棧中已經有該Activity的實例,就重用該實例(會調用實例的onNewIntent())。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創建新的實例放入棧中。

4. singleInstance

在一個新棧中創建該Activity實例,並讓多個應用共享改棧中的該Activity實例。一旦改模式的Activity的實例存在於某個棧中,任何應用再激活改Activity時都會重用該棧中的實例,其效果相當於多個應用程序共享一個應用,不管誰激活該Activity都會進入同一個應用中

Ⅷ android 怎麼自啟動應用

安裝自啟動:
要做這個功能有一個前提,那就是用戶的機器上已經裝過相應應用,也就是說只有升級APK的時候才可以這么干,因為要執行的功能需要程序的配合。
具體步驟如下:
首先要知道程序已經安裝完成,所以需要在程序中注冊一個廣播監聽(必須是靜態的,你懂的)apk安裝完成的action:"android.intent.action.PACKAGE_ADDED",在這個廣播的onReceive方法中監聽action,並通過intent.getDataString()方法判斷安裝程序的包名是否屬於自己的包名,如果是做下一步操作;
通過Intent顯式或者隱式的啟動你自己的程序。
建議:
  最好不要這樣干,你要考慮一下用戶的感受,特別是那種自動安裝不需要點確認的時候,正在玩游戲、看視頻、看小說、用微信你自動打開一個應用

開機自啟動
android實現開機自啟動可能是移動操作系統中最簡單的了,只需要監聽一個開機啟動的Broadcast(廣播)即可。首先寫一個Receiver(即廣播監聽器),繼承BroadcastReceiver。

如下所示:
public class BootReceiver extends BroadcastReceiver {
private PendingIntent mAlarmSender;
@Override
public void onReceive(Context context, Intent intent) {
// 在這里干你想乾的事(啟動一個Service,Activity等),本例是啟動一個定時調度程序,每30分鍾啟動一個Service去更新數據
mAlarmSender = PendingIntent.getService(context, 0, new Intent(context,
RefreshDataService.class), 0);
long firstTime = SystemClock.elapsedRealtime();
AlarmManager am = (AlarmManager) context
.getSystemService(Activity.ALARM_SERVICE);
am.cancel(mAlarmSender);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
30 * 60 * 1000, mAlarmSender);
}
}

接下來,只需要在應用程序配置文件AndroidManifest.xml中注冊這個Receiver來監聽系統啟動事件即可

如下所示:
<receiver android:name=".service.BootReceiver">
<intent-filter>
<!-- 系統啟動完成後會調用-->
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>

Ⅸ android自啟動相關:Intent

因為你在receiver中的context不是activity 上下文,這樣的話啟動activity有限制,必須在
新的task啟動,於是就有這個addflag了。
其他的地方也一樣可以用到,你可以點開注釋,看各種FLAG的含義。

Ⅹ intent是什麼如何使用intent啟動不同的組件

其實是android設計好的一種機制,可以通過這個intent來啟動應用。比如一些電話界面、發送信息和其他的應用。

閱讀全文

與androidintent啟動方式相關的資料

熱點內容
我的鹽城app怎麼添加不了家庭成員 瀏覽:493
php商城並發 瀏覽:348
熊貓繪畫app怎麼做出大佬的筆刷 瀏覽:603
雲存儲伺服器知識 瀏覽:461
伺服器cpu是什麼指令集 瀏覽:590
糖貓t10怎麼安裝app 瀏覽:992
電腦加密u盤怎麼使用 瀏覽:517
linux如何升級php版本升級 瀏覽:841
二級程序員c語言難度 瀏覽:352
批處理編譯qt 瀏覽:66
鐵友app怎麼查詢機票訂單 瀏覽:197
myeclipselinux破解版 瀏覽:417
批處理命令語法不正確 瀏覽:889
pdf合並成一個pdf在線 瀏覽:383
柱加密區構造要求 瀏覽:514
地板木龍骨標准跟加密區別 瀏覽:150
解壓放鬆的好地方河南 瀏覽:965
搜狗怎麼移動到文件夾 瀏覽:617
文件自動選擇到文件夾 瀏覽:794
贈送的app怎麼在ipad下載 瀏覽:508