当前位置:首页 » 安卓系统 » androidintent启动

androidintent启动

发布时间: 2023-01-06 15:48:52

⑴ 安卓 怎么通过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"
/>收起

⑵ 027android初级篇之Intent相关介绍

在Android中提供了Intent机制来协助Android应用间,组件间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。

Intent可以用来启动Activity,Service,Broadcasts。

Intent有以下几个属性:动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。

Intent类型分为显式Intent(直接类型)、隐式Intent(间接类型)。官方建议使用隐式Intent。上述属性中,component属性为直接类型,其他均为间接类型。

相比与显式Intent,隐式Intnet则含蓄了许多,它并不明确指出我们想要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。

Action要表达的是Intent要完成的动作,是字符串常量。
SDK中定义了一些标准的Action常量。使用它们可以用来启动android系统的一些内置程序如相机,相片库,打电话,等等。(具体可参考文章 009android初级篇之APP中使用系统相机相册等集成应用 ).

即执行动作要操作的数据和传递到目标的附加信息

Category属性是一个执行动作Action的附加信息。比如:CATEGORY_HOME则表示放回到Home界面,ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个。下表是SDK文档中关于Category的信息
几个常见的category如下:

Intent的Type属性显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。
例如:一个可以处理图片的目标Activity在其声明中包含这样的mimeType:

在使用Intent进行匹配时,我们可以使用setType(String type)或者setDataAndType(Uri data, String type)来设置mimeType。

目标组件的包或类名称
在使用component进行匹配时,一般采用以下几种形式:

其中,前两种是用于匹配同一包内的目标,第三种是用于匹配其他包内的目标。需要注意的是,如果我们在Intent中指定了component属性,系统将不会再对action、data/type、category进行匹配。

期望这个意图的运行模式
可参考文章 025android初级篇之Android am命令的实现 中部分的FLAG的定义。

⑶ android中intent启动Activity问题

答:一.利用intent(Activity1.this,***.class)方法
二.利用intent的ComponentName属性直接指定包名方法 。这两个实际表达的意思是一样的,都是属于显示匹配,不经过IntentFilter过滤,现在的问题是能否使得这个源Acitivity.java访问目标Activity2.java类,这跟Activity2.java修饰符有关系。public的情况下,可以启动同一个项目另一个包中的Activity.default情况下,能启动同一个包中的。
三.Intent隐式匹配3种情况都可以。

望采纳

⑷ 关于安卓intent启动activity的几种情况

我们一般写的比较简单的方法就是starActivity(new Intent(context,A.class)).这种启动的方式很简单,就是一个从当前界面跳转到下一个activity界面。

首先我们先要说一个问题,当你有弹窗信息,或者通知栏里面出现了通知,然后你点击进去,不知道你有没有在意,APP会在五秒钟之后打开,当然,有的不会 大多数还是会的。现在我们就说一下这个问题

在谷歌的 Android API Guides 中,特意提醒开发者不要在后台启动 activity,包括在 Service 和 BroadcastReceiver 中,这样的设计是为了避免在用户毫不知情的情况下突然中断用户正在进行的工作.

就是当通过 home 键将当前 activity 置于后台时,任何在后台startActivity 的操作都将会延迟 5 秒,除非该应用获取了 "android.permission.STOP_APP_SWITCHES" 权限.但是这个权限是系统级别的权限.

解决方法:

不能够用传统的startActivity来启动Activity

Intent intent = new Intent(context, A.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

而是要用以下形式来启动Activity:

Intent intent = new Intent(context, A.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

PendingIntent pendingIntent =

PendingIntent.getActivity(context, 0, intent, 0);

try {

pendingIntent.send();

} catch (PendingIntent.CanceledException e) {

e.printStackTrace();

}

OK,这种方式启动activity,一般是用在有后台任务的时候

starActivityforResult(),里面有两个参数,一个是intent,还有一个是requestcode,当你启动下一个界面的然后又关闭的时候,会得到一个返回值,这个返回值就是这个requestcode,你需要做的就是通过onActivityforResult()方法去进行对这个requestcode进行判断,处理好相应的逻辑

这个文章是我睡前写的,手机上面实在不好打字

⑸ 关于android.intent.action.MAIN在manifest里的使用

1、android.intent.action.MAIN决定应用程序是最先启动的。

2、如果有多个activity都具有此权限,那么就应该用<intent-filter>来定义哪个activity在什么情况下启动。

3、如果在某个activity中不添加android.intent.action.MAIN有没有影响这个没有尝试过,如果没有应该是无法启动的。理论上提示无权限。

Android会根据manifest.xml是启动相应的应用程序。

启用应用程序的时候,会启用对应的Activity,启用的这些Activity也要在manifest.xml中声明。

<intent-filter>在声明的时候用到的,是在activity下一级,而<action>和<category>又是在<intent-filter>的下一级

<activity...

<intent-filter>...

<action...

<category...

</intent-filter>

</activity>

<intent-filter>就理解为过滤器,它指定了启动应用程序的Intent对象的动作和类型

<actionandroid:name="android.intent.action.MAIN"/>

-->表示这个activity是主入口,换句话说,你只要启动这个应用程序,就要首先调用这个activity

<categoryandroid:name="android.intent.category.LAUNCHER"/>

-->表示这个activity种类,要加到LAUNCHER程序列表里。

(5)androidintent启动扩展阅读:

任何一个C++程序都包含一个main函数,这是规定。main函数由系统直接调用,是程序执行的入口。(和C++语言中一样)

main函数与用户自己定义的函数都是各自独立的模块,即函数不能嵌套定义,通俗的说,不能在一个函数的函数体内定义另一个函数,即使在main函数中也不行。但main函数可以对用户自己定义的函数进行调用(但main函数只能由系统调用)。用户自己定义多个函数时,这几个用户自己定义的函数之间都可以互相调用。

参考自拉理由:网络-main

⑹ android Intent启动其它应用

可以带别的东西。
需要com.rarlab.rar.MainActivity类的支持。
com.rarlab.rar.MainActivity可以在onCreate中通过getIntent来得到
传入来的intent.
intent可以设置一些数据,比如Intent.putExtra("type","rar")
然后onCreate得到后,可以Intent.getStringExtra("type")

热点内容
竖编译 发布:2025-05-17 09:56:08 浏览:227
编程画飞机 发布:2025-05-17 09:54:03 浏览:800
手机如何解锁密码屏幕锁怎么删除 发布:2025-05-17 09:52:04 浏览:123
网络无法访问网页 发布:2025-05-17 09:51:40 浏览:649
云存储box估值 发布:2025-05-17 09:47:11 浏览:511
关系数据库实时数据库 发布:2025-05-17 09:43:07 浏览:875
去培训编程 发布:2025-05-17 09:41:16 浏览:701
android控制屏幕关闭 发布:2025-05-17 09:32:23 浏览:148
excel的快速访问工具栏 发布:2025-05-17 09:14:58 浏览:2
android360源码 发布:2025-05-17 09:11:47 浏览:77