导航:首页 > 操作系统 > 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启动方式相关的资料

热点内容
批处理编译qt 浏览:65
铁友app怎么查询机票订单 浏览:197
myeclipselinux破解版 浏览:417
批处理命令语法不正确 浏览:889
pdf合并成一个pdf在线 浏览:383
柱加密区构造要求 浏览:514
地板木龙骨标准跟加密区别 浏览:150
解压放松的好地方河南 浏览:965
搜狗怎么移动到文件夹 浏览:617
文件自动选择到文件夹 浏览:794
赠送的app怎么在ipad下载 浏览:508
颈椎解压后神经恢复 浏览:849
怎么看app订阅扣费 浏览:314
linux系统的负载均衡 浏览:419
遇到挫折解压视频 浏览:778
什么指令看服务器运行负载 浏览:84
因硕智能门锁卡片是加密的么 浏览:336
为什么会服务器不可用 浏览:290
wow宏命令设置 浏览:264
解压神器一张纸折叠魔术球 浏览:23