android app怎么设置不可见js 隐式调用用

标签:至少1个,最多5个
一、Activity 显式启动 (代码示例):
public class MyActivity extends Activity {
Button buttonS
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonStart = (Button) findViewById(R.id.start);
buttonStart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//显示启动
Intent intent = new Intent();
intent.setClass(MyActivity.this, SecondActivity.class);
startActivity(intent);
二、Activity 隐式启动 (代码示例):
public class MyActivity extends Activity {
Button buttonS
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonStart = (Button) findViewById(R.id.start);
buttonStart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//隐式启动
Intent intent = new Intent();
intent.setAction("asdf.SecondActivity");
startActivity(intent);
三、应用场景
显式Intent :通过指定Intent组件名称来实现的,一般用在知道目标组件名称的前提下,一般是相同的应用程序内部实现的。
隐式Intent:
通过Intent Filter来实现的,它一半用在没有明确指出目标组件名称的前提下,一般用于在不同的应用程序之间。
总结:对于显式Intent, Android不需要自阿去做解析,因为目标组件很明确。Android需要解析的是隐式Intent,通过解析,将Intent映射给可以处理该Intent的Activity,Service等。Intent的解析机制主要是通过查找已经注册在AndroidManifest.xml中的所有IntentFilter以及其中定义的Intent, 最终找到 Intent.
0 收藏&&|&&1
你可能感兴趣的文章
4 收藏,992
1 收藏,56
1 收藏,2.5k
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
我要该,理由是:Android - 安装应用(APP) 不显示图标
安装应用(APP) 不显示图标
本文地址:
在启动的activity的Manifest注册中,添加隐式启动的data:
删除应用图标的若干解决方案:
1、AndroidManifest.xml文件中在入口Activity的intent-filter里去掉
或者将LAUNCHER改为DEFAULT
2、在程序中加入下面的代码
显示图片:
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
隐藏图标:
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
PONENT_ENABLED_STATE_ENABLED //显示应用图标
PONENT_ENABLED_STATE_DISABLED //隐藏应用图标
我用这俩个值来显示和隐藏应用图标有问题,隐藏以后就无法在显示应用图标了,在设置里的所有应用里也找不到了;
将参数值该成这两个值就没有问题了,建议使用这两个值。
3、去掉android:icon=&@drawable/ic_launcher&中的资源啊,等等等等。。。
但是试过了每一种方法之后你都发现起到了作用但是却产生了其他的问题:
1、如果去掉,就表示app没有启动入口了,
这样子确实是解决了不显示图标的效果,但是那样的话我们的应用也运行不了了。
2、我们来看看android developer上的说明:
public static final int COMPONENT_ENABLED_STATE_DISABLED
Flag for setApplicationEnabledSetting(String, int, int) and setComponentEnabledSetting(ComponentName, int, int): This component or application has been explicitly disabled, regardless of what it has specified in its manifest.
意思是,即使你在manifest中声明了这个component或application,当你设置为COMPONENT_ENABLED_STATE_DISABLED时,他们都是不可用的。也就是说,如果你在MainActivity中这样设置了,那么应用图标不会显示,应用也不会运行。
3、就不说了,我觉得是狗急跳墙的做法。
最优的解决方案:
接下来我要说的这种方法可以隐藏图标,同是也可以正常启动运行。
在manifest的入口activity里面intent-filter中设置元素。
注意,android:scheme是大小写敏感的,必须以小写字母开头
也就是这个MainActivity可以响应Uri为com.android.example://AuthActivity的特定 Intent
但是为什么加入这个之后app就不显示图标了呢?
因为我们把app的入口Activity申明为由接收隐士的Intent来启动,这样自然也就不会显示图标了。
如果需要显示图标的话而且也必须响应上述Uri的话,那么我们可以在该Activity中再加入一个intent-filter标签,将data元素移到新建的标签中。
这样应用既可以显示图标又可以响应特定的Uri了。19204人阅读
android学习记录(23)
Intent(意图)主要是解决Android应用的各项组件之间的通讯。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)
为了实现这个目的,listActivity需要构造一个 Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity (Intent intent),将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的 Activity,即为detailActivity,最终传入Intent,detailActivity则会根据此Intent中的描述,执行相应的操作。
对于intent主要的分类主要包括隐式意图和显式意图。显式意图通常主要是启动本应用中的Activity之间的数据,而隐式意图则常见于启动系统中的某些特定的动作,比如打电话,或者是跨应用的Activity启动。
通常来说:
显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
显示意图非常常用也非常简单一般用于应用程序内之间Activity的相互调用转换,就不多说了,这里我介绍一下隐式意图:
简单概括就是: 意图包括:Action(动作),Category(附加信息),Data(数据,具体内容),Tpye(类型)等等,举个例子,说白了意图就是启动一个组件的的完整的动作信息,就像打人,打就是Action动作,人就是Data内容,而Type就是类型,打什么人呢?打坏人,type就是坏指的类型,只有这些信息全了才能执行一个完整的意图,当然还有一些信息,比如scheme就是URI类型的数据的前缀,就像这个例子当中的sms:,还有host主机名,path路径等。
这里我给大家举一个调用系统短信的例子,使用隐式意图启动系统短信,并给10086发送信息的例子。代码如下:
* 隐式意图的方法启动系统短信
* 简单概括就是: 意图包括:Action(动作),Category(附加信息),Data(数据,具体内容),Tpye(类型)等等,举个例子,
* 说白了意图就是启动一个组件的的完整的动作信息
* ,就像打人,打就是Action动作,人就是Data内容,而Type就是类型,打什么人呢?打坏人,type就是坏指的类型
* ,只有这些信息全了才能执行一个完整的意图
* ,当然还有一些信息,比如scheme就是URI类型的数据的前缀,就像这个例子当中的sms:,还有host主机名,path路径等
* @param view
public void startOne(View view) {
Intent intent = new Intent();
intent.setAction(&android.intent.action.SENDTO&);// 发送信息的动作
intent.addCategory(&android.intent.category.DEFAULT&);// 附加信息
intent.setData(Uri.parse(&sms:10086&));// 具体的数据,发送给10086
startActivity(intent);
}上边的这个例子是调用系统的东西,下边我们来看看自定义的隐式意图是怎么调用的。
首先是先在清单文件中进行注册,代码如下:
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
package=&net.loonggg.intent&
android:versionCode=&1&
android:versionName=&1.0& &
android:minSdkVersion=&8&
android:targetSdkVersion=&17& /&
&application
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &
android:name=&net.loonggg.intent.MainActivity&
android:label=&@string/app_name& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&activity android:name=&net.loonggg.intent.SecondActivity& &
&intent-filter&
&!-- 自定义的动作 --&
&action android:name=&net.loonggg.xxx& /&
&!-- 自定义的scheme和host --&
android:host=&&
android:path=&/person&
android:scheme=&loonggg& /&
&!-- 自定义的类型 --&
&data android:mimeType=&person/people& /&
&!-- 附加信息 --&
&category android:name=&android.intent.category.DEFAULT& /&
&/intent-filter&
&/activity&
&/application&
&/manifest&第二个Activity里的东西就是我们自定义设置的,就是下边的这段代码:
&activity android:name=&net.loonggg.intent.SecondActivity& &
&intent-filter&
&!-- 自定义的动作 --&
&action android:name=&net.loonggg.xxx& /&
&!-- 自定义的scheme和host --&
android:host=&&
android:path=&/person&
android:scheme=&loonggg& /&
&!-- 自定义的类型 --&
&data android:mimeType=&person/people& /&
&!-- 附加信息 --&
&category android:name=&android.intent.category.DEFAULT& /&
&/intent-filter&
&/activity&
那在代码中怎么调用自定义的呢?其实跟调用系统短信一样,只不过调用系统短信里的那些动作和数据,系统已经给我们配置好了,我们直接用就行,而自定义的就是我们自己写的,调用方法和系统其实是一样的。方法如下:
* 通过自定义的隐式意图启动
* @param view
public void startTwo(View view) {
Intent intent = new Intent();
intent.setAction(&net.loonggg.xxx&);
intent.addCategory(&android.intent.category.DEFAULT&);
intent.setDataAndType(Uri.parse(&loonggg:///person&),
&person/people&);
startActivity(intent);
}特别注意的一点是:intent.setData(data)和intent.setType(type)注意这两个方法会互相清除,意思就是:如果先设置setData(data)后设置setType(type),那么后设置的setType(type)会把前面setData(data)设置的内容清除掉,而且会报错,反之一样,所以如果既要设置类型与数据,那么使用setDataAndType(data,type)这个方法。
转载注明出处:http://blog.csdn.net/loongggdroid/article/details/
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1250304次
积分:7729
积分:7729
排名:第2847名
原创:116篇
转载:16篇
评论:441条
新浪微博:
我的微信:
微信订阅号:
微信小程序开发实战课程 :
(1)(1)(3)(1)(1)(3)(3)(2)(5)(3)(5)(1)(3)(3)(5)(3)(1)(7)(7)(3)(3)(1)(1)(2)(1)(4)(14)(7)(1)(2)(1)(1)(9)(18)(1)(3)(5)淘宝应用是如何干预 Android 的默认应用设置的? - 知乎136被浏览10917分享邀请回答&intent-filter android:priority="-1" &
&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&data android:scheme="http" /&
第一行,是设置它的优先级,一般来说,默认的优先级是0,淘宝把这个intent-filter设置为-1,估计是不想让它自己的浏览器出现在选择程序界面。如果我们只去掉这一属性,此问题描述的bug就不存在了,但是淘宝的浏览器就会出现在选择程序界面。
这个估计不是淘宝想要的,所以我们再来看看后面三行。
这三行是andoroid官方定义的一些配置,此配置可用于隐式启动一个可以处理http相关内容的activity(一般就是打开这个网址)。
所以如果我是淘宝的开发人员,想在解决此bug的情况下,又不让淘宝的浏览器界面暴露给用户选择,我就可以把android官方定义的category和action换成自定义的,使用的时候也使用自定义的配置,同时保留android:priority="-1"选项然后就可以了。&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&data android:scheme="http" /&
android:name="com.taobao.browser.BrowserActivity"
android:allowTaskReparenting="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Theme.NoBackgroundAndTitle"
android:windowSoftInputMode="adjustResize|stateHidden" &
&intent-filter android:priority="-1" &
&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&category android:name="android.intent.category.BROWSABLE" /&
&category android:name="com.taobao.intent.category.HYBRID_UI" /&
&data android:scheme="http" /&
&data android:scheme="https" /&
&data android:scheme="taobao" /&
&/intent-filter&
&!-- 其他与此问题无关的intent-filter被我忽略掉了 --&
&/activity&
3 我自己写一个应用,可以搞出这个问题吗?
可以,在任意一个应用的任意一个activity下面添加以下信息就可以了,其中category项可以省略(因为本身就是defualt(缺省))。&intent-filter android:priority="-1" &
&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&data android:scheme="http" /&
&/intent-filter&
4 与默认应用相关的配置文件是“/data/system/users/0/package-restrictions.xml”,里面有preferred-activities的相关内容,对应的就是默认应用,此文件一般用户是看不到的。
梳理一下此问题的出现过程。
4.1,手机里面有安装多个浏览器,同时目前没有配置默认浏览器。
4.2,安装淘宝,然后从其他地方(比如短信)打开一个网址,选中任意一个浏览器(比如chrome),然后点击always。
这个时候package-restrictions.xml文件里面会增加下面的信息,同时,在下一次弹出浏览器选择提示界面之前,always一直是true,错误是发生在浏览器选择界面的。&item name="com.android.chrome/com.google.android.apps.chrome.Main" match="200000" always="true" set="3"&
&set name="com.android.browser/.BrowserActivity" /&
&set name="com.android.chrome/com.google.android.apps.chrome.Main" /&
&set name="com.taobao.taobao/com.taobao.browser.BrowserActivity" /&
&action name="android.intent.action.VIEW" /&
&cat name="android.intent.category.DEFAULT" /&
&scheme name="http" /&
4.3,再次从短信中打开一个网址,此时淘宝的priority="-1"触发了系统的一个bug,内容被改为&item name="com.android.chrome/com.google.android.apps.chrome.Main" match="200000" always="false" set="0"&
&action name="android.intent.action.VIEW" /&
&cat name="android.intent.category.DEFAULT" /&
&scheme name="http" /&
5 怎么修改这个bug
5.1 去阿里相关部门投诉,并把第二段的关于问题是怎么出现的内容发过去,不过如果其他应用有这个问题,那就没办法了。
以下是彻底修正的方法:
5.2 最好的方案是给Google提bug,Google来改,因为根据知友的反馈,在目前最新的android5.0.1上也是有此问题的,而其他人是没有权限提交这个代码的。
5.3 找厂商投诉,让厂商修改。
5.4 对于有Nexus手机的知友,同时对android源码又懂一点,可以自己下载android源码,自己修改然后刷机。
与此bug相关的log,把这个log给Google或者厂商,并说明详细情况,这段log对手机厂商足够了。I/PackageManager( 1117): Result set changed, dropping preferred activity for Intent { act=android.intent.action.VIEW cat=[android.intent.category.DEFAULT] dat=/} type null
####以下是写的,是为了和题主确认具体复现场景####题主你好,关于“Android装了淘宝app之后,为啥能影响到系统默认打开设置?”,能否说一下操作的流程,然后淘宝具体是怎么影响的,效果是什么,然后我可以根据这个具体的行为去分析一下。7222 条评论分享收藏感谢收起2308人阅读
android_intent(7)
/p/f77b5e1d76c9
/p/f77b5e1d76c9
/p/f77b5e1d76c9
Android Intent隐式启动通过scheme打开应用
字数2119&阅读233&&喜欢1
本文转载自tickTick的BLOG,。
本文通过完成一个实战任务,来掌握Android开发中隐式Intent的用法。
任务:假设我们已经实现了一个视频播放器(PlayerActivity),我们希望能把它注册到系统中,当用户点击本地视频或者在线视频时,能启动这个视频播放器。
(假设该类的全路径为:com.jhuster.videoplayer.PlayerActivity)
1. 什么是隐式Intent?
Intent是Android中比较重要的组件,常用来启动一个新的Activity或者Service、广播某个事件,以及在Android组件之间传递数据。通过Intent来启动新的Activity或者Service通常有两种方法,一种是显示启动,另一种是隐式启动。
显示启动就是在明确指出要启动的Activity或者Service的类或者包名。例如:
Intent intent = new Intent(this, PlayerActivity.class);
startActivity(intent);
Intent intent =new Intent();
intent.setClass(this,PlayerActivity.class);
startActivity(intent);
Intent intent =new Intent();
intent.setClassName(“com.jhuster.videoplayer”,“com.jhuster.videoplayer.PlayerActivity”);
startActivity(intent);
隐式启动则是不明确指定启动哪个Activity或者Service,而是通过设置Action、Data、Category,让系统来筛选出合适的目标。
例如拨打电话:
Intent intent =new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:021-”))
startActivity(intent)
系统接收到隐式启动请求后,会根据系统中各个Activity在AndroidManifest.xml文件中声明的&intent-filter&来比较和判断是否匹配当前的Intent请求的。
因此,如果我们希望PlayerActivity能够被系统隐式启动,则首先需要在AndroidManifest.xml文件中为该Activity添加&intent-filter&.
2. 为PlayerActivity添加&intent-filter&
&intent-filter&的标签有很多,这里只介绍和添加最基本且最常用的三个标签,分别是&action&,&category&和&data&。
2.1 添加&action&
这个标签是必须添加的,可以自己定义,也可以使用系统预定义的变量,Android系统默认定义了很多action,具体可以查看SDK文档,或者Google一下“android.intent.action.”。
这里,因为我们的类是用来“播放视频”的,因此可以使用系统预定义的:android.intent.action.VIEW,它表示需要启动某个Activity显示指定的数据(包括图片、视频、文档等)。
添加了后的如下所示:
android:name=&com.jhuster.videoplayer.PlayerActivity&&
android:name=&android.intent.action.VIEW&/&
2.2 添加&category&
category代表类别,定义了Activity的类别,Activity可以设置一个或者多个category标签。常用的一般有3个:DEFAULT,HOME,LAUNCHER
设置为本地桌面应用
LAUNCHER 本APP的启动Activity
本应用中我们使用DEFAULT类别即可,DEFAULT也是category最常用的选项。
添加了category后的如下所示:
android:name=&com.jhuster.videoplayer.PlayerActivity&&
android:name=&android.intent.action.VIEW&/&
2.3 添加&data&
data 代表数据源,是&intent-filter&中最复杂的标签,因为不同的Activity支持的数据来源和类型多种多样,所以需要通过详细的data标签信息来指明。
data 标签有很多属性,包括:
android:host: 指定主机名,例如:
android:port:
制定主机端口,例如: 80
android:path:
指定URL的有效路径值,例如: /index/examples
android:mimeType: 指定组件可以执行的数据类型,例如:image/jpeg,video/*
android:scheme: 指定特定的模式,例如:content,http
这里,假设我们的视频播放器支持多种数据来源,包括:本地视频文件,本地媒体URL,网络视频流(HTTP、RTMP、RTSP协议),另外,假设我们的视频播放器只支持mp4和3gpp两种文件格式。
那么,下面我们来添加两种最常用&data&的标签,scheme和mimeType,并且解释每条标签对应的是怎样的一种数据来源或者数据格式。
(1)&data android:scheme=&xxx&/&
这里的xxx可以是:file,content,网络协议(HTTP,RTMP、RTSP等)
本应用中我们给PlayerActivity的中&Intent-filter&添加:
android:scheme=&file&/&
android:scheme=&content&/&
android:scheme=&http&/&
android:scheme=&rtsp&/&
添加了这样几条data标签项之后,如果隐式Intent中的数据来源URL是以“file://”、“content://”、“
例如,其他的Activity可以通过下面的方法来隐式启动我们的PlayerActivity.
Intent intent =new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.fromFile(new File(&/sdcard/test.3gp&)));
startActivity(intent);
Uri.fromFile这条语句会把指定的文件位置转换为以“file://”开头的Uri对象,如上述例子最终得到的URL为:“file:///sdcard/test.3gp”
同理,可以通过Uri.parse来转换我们常见的网络地址字符串为Uri对象,例如:
Intent intent =new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(&http://ticktick./test.mp4&));
startActivity(intent);
(2)&data android:mimeType=&xxx&/&
mimeType用来设置数据类型,例如图像数据(image/png或者image/),视频数据(video/mp4或者video/),如果使用*代表匹配所有的子类型。
MIME TYPE是互联网的一种标记数据类型的标准,现在已经支持非常多的类型了,这里我不一一列举,大家可以在Google上搜索一下。
本应用中我们假设需要支持的是mp4和3gpp两种类型,那么,我们可以添加这样两条 mimeType :
android:mimeType=&video/3gpp&/&
android:mimeType=&video/mp4&/&
那么,其他的Activity就可以通过下面的方法来隐式启动我们的PlayerActivity. 注意,当&intent-filter&已经添加了mimeType之后,隐式Intent必须设置Type参数才能匹配到该Activity,所以建议使用setDataAndType方法,而不是单一的setData方法。
Intent intent =new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(&/sdcard/test.3gp&)),&video/3gpp&);
startActivity(intent);
当然,这里的&video/3gpp&也可以写成:&video/*&,但这样可能会匹配到一些不支持3gpp的播放器。
(3) 小结
添加了&data&标签后的如下所示:
android:name=&com.jhuster.videoplayer.PlayerActivity&&
android:name=&android.intent.action.VIEW&/&
android:name=&android.intent.category.DEFAULT&/&
android:scheme=&file&/&
android:scheme=&content&/&
android:scheme=&http&/&
android:scheme=&rtsp&/&
android:scheme=&rtmp&/&
android:mimeType=&video/3gpp&/&
android:mimeType=&video/mp4&/&
3. 在PlayerActivity中获取参数
通过上面的介绍,我们已经知道了怎样添加&intent-filter&以及怎样通过隐式Intent来调用我们的PlayerActivity,那么,下面我们还要了解如何在PlayerActivity中解析来自隐式Intent的参数。
其实,Intent提供了很多方法可以Get相关的参数信息,例如:
public String getAction();
public Uri
getData();
public String getScheme();
public String getType();
上述方法分别可以获取Intent的Action,Data Uri,Scheme和MimeType值。
对于“file://”开头的Uri对象,我们可以通过Uri.getPath方法得到去除了“file://”前缀的具体文件地址。例如: “file:///sdcard/test.mp4”则可以转换为实际的“/sdcard/test.mp4”。
对于网络码流,例如:“
而对于“content://”开头的URI对象,一般是从系统的媒体数据库中检索出来的结果,因此需要反向查找得到实际的文件地址,这里提供一个函数进行转换。
public static String getVideoPath(Context context, Uri uri) {
Uri videopathURI =
if(uri.getScheme().toString().compareTo(&content&) ==0) {
Cursor cursor = context.getContentResolver().query(uri,null,null,null,null);
if(cursor.moveToFirst()) {
intcolumn_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
videopathURI = Uri.parse(cursor.getString(column_index));
return videopathURI.getPath();
}else if(uri.getScheme().compareTo(&file&) ==0) {
return videopathURI.getPath();
return videopathURI.toString();
到这里算是把隐式Intent的重要知识点都讲清楚了,本文转载自tickTick的BLOG,。谢谢。
请务必保留此出处
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:271701次
积分:3444
积分:3444
排名:第10178名
转载:490篇
评论:71条
(1)(2)(2)(1)(13)(41)(63)(72)(76)(62)(40)(59)(59)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 valueof 隐式调用 的文章

 

随机推荐