当前位置: 首页 > news >正文

网站建设话术关键词微信api文档

网站建设话术关键词,微信api文档,人际网络营销能做吗,网店代运营被骗怎么追回活动组件Activity 启动和结束生命周期启动模式信息传递Intent显式Intent隐式Intent 向下一个Activity发送数据向上一个Activity返回数据 附加信息利用资源文件配置字符串利用元数据传递配置信息给应用页面注册快捷方式 启动和结束 #xff08;1#xff09;从当前页面跳到新页… 活动组件Activity 启动和结束生命周期启动模式信息传递Intent显式Intent隐式Intent 向下一个Activity发送数据向上一个Activity返回数据 附加信息利用资源文件配置字符串利用元数据传递配置信息给应用页面注册快捷方式 启动和结束 1从当前页面跳到新页面startActivity(new Intent(源页面.this,目标页面.class)) 2从当前页面回到上一个页面相当于关闭当前页面finish() 生命周期 onCreate创建活动。把页面布局加载到内存进入了初始状态。 onStart开始活动。把活动页面显示在屏幕上进入了就绪状态。 onResume恢复活动。活动页面进入活跃状态能够与用户正常交互例如允许响应用户的点击动作、允许用户输入文字等等。 onPause暂停活动。页面进入暂停状态无法与用户正常交互。 onStop停止互动。页面将不在屏幕上显示。 onDestroy销毁活动。回收活动占用的系统资源把页面从内存中清除。 onRestart重启活动。重新加载内存中的页面数据。 onNewIntent重用已有的活动实例。 注如果一个Activity已经启动过了并且存在当前应用的Activity任务栈中启动模式为singleTasksingleInstance或singleTop此时已在任务栈顶端那么在此启动或回到这个Activity的时候不会创建新的实例也就是不会执行onCreate方法而是执行onNewIntent方法。 下图为活动的状态变迁过程 打开新页面的方法调用顺序为 onCreate-onStart-onResume 关闭旧页面的方法调用顺序为 onPause-onStop-onDestroy 启动模式 一启动模式类型 1默认启动模式standard 在该模式下每启动一个Activity就会在栈顶创建一个新的实例即启动的Activity会依照启动顺序被依次压入Task栈中。实际开发中闹钟程序通常使用这种模式。 2栈顶复用模式singleTop 该模式会判断要启动的Activity实例是否位于栈顶如果位于栈顶则直接复用否则创建新的实例。实际开发中浏览器的书签、应用支付跳转通常采用这种模式。适合开启渠道多、多应用开启调用的Activity通过这种设置在一定条件下可以避免已经创建过的Activity被重复创建多数通过动态设置使用。 3栈内复用模式singleTask 与singleTop模式类似只不过singleTop模式只是针对栈顶的元素而singleTask下如果task栈内存在目标Activity实例则将task内的对应Activity实例之上的所有Activity弹出栈并将对应Activity置于栈顶获得焦点。应用场景 程序/浏览器主界面不希望主界面被创建多次而且在主界面退出的时候整个App是最好的效果。 耗费系统资源的Activity对于那些极其消耗系统资源的Activity我们可以考虑将其设为singleTask模式减少资源耗费。 4全局唯一模式singleInstance 在该模式下我们会为目标Activity创建一个新的Task栈将目标Activity放入新的Task并让目标Activity获得焦点。新的Task有且只有这一个Activity实例。如果已经创建过目标Activity实例则不会创建新的Task而是将以前创建过的Activity唤醒。无论从哪个任务栈中启动该Activity该实例在整个系统中只有一个。实际开发中来电界面通常使用这种模式。 二设置Activity的启动模式 1静态设置启动模式 打开配置文件AndroidManifest.xml给activity节点添加属性android:launchMode属性值填入standard表示采取标准模式当然不添加属性的话默认就是标准模式standard。 activity android:name.MainActivity android:launchModestandard/ 2动态设置启动模式 动态设置是通过Java代码设置的通过Intent动态设置Activity启动模式。 Intent类的启动标志说明Intent.FLAG_ACTIVITY_NEW_TASK开辟一个新的任务栈该值类似于launchMode“standard”不同之处在于如果原来不存在活动栈则FLAG_ACTIVITY_NEW_TASK会创建一个新栈Intent.FLAG_ACTIVITY_SINGLE_TOP当栈顶为待跳转的活动实例之时则重用栈顶的实例。该值等同于launchMode“singleTop”Intent.FLAG_ACTIVITY_CLEAR_TOP当栈中存在待跳转的活动实例时则重新创建一个实例并清除原实例上方的所有实例。该值与launchModesingleTask类似但singleTask采取onNewIntent方法启动原任务而FLAG_ACTIVITY_CLEAR_TOP采取先调用onDestroy再调用onCreate来创建新任务Intent.FLAG_ACTIVITY_NO_HISTORY该标志与launchMode“standard”情况类似但栈中不保存新启动的活动实例这样下次无论以何种方式再启动该实例也要走standard模式的完整流程即栈中不保存新启动的活动实例Intent.FLAG_ACTIVITY_CLEAR_TASK该标志非常暴力跳转到新页面时栈中的原有实例都被清空。注意该标志需要结合FLAG_ACTIVITY_NEW_TASK使用即setFlags方法的参数为“Intent.FLAG_ACTIVITY_CLEAR_TASK Intent.FLAG_ACTIVITY_NEW_TASK” 三启动模式的实际应用 1在两个活动之间交替跳转 背景介绍假设活动A有个按钮点击该按钮会跳到活动B同时活动B也有个按钮点击按钮会跳到活动A从首页打开活动A之后就点击按钮在活动A与活动B之间轮流跳转。此时活动页面的跳转流程为首页-活动A-活动B-活动A-活动B-活动A-活动B-…多次跳转之后想回到首页正常的话返回流程是这样的…活动B-活动A-活动B-活动A-活动B-活动A-首页每个箭头都代表按一次返回键可见要按下许多次返回键才能返回首页。其实在活动A和活动B之间本不应该重复返回因为回来回去总是这两个页面是没有意义的。照理说每个活动返回一次足矣同一个地方返回两次已经是多余的了再返回应当回到首页才是。也就是说不管过去的时候怎么跳转回来的时候应该按照这个流程…活动B-活动A-首页或者…活动A-活动B-首页总之已经返回了的页面决不再返回第二次。 设计思想 对于不允许重复返回的情况可以设置启动标志FLAG_ACTIVITY_CLEAR_TOP即使活动栈里面存在待跳转的活动实例也回重建该活动的实例并清除原实例上方的所有实例保证栈中最多只有该活动的唯一实例从而避免了无谓的重复返回。于是活动A内部的跳转代码就改成了 Intent intentnew Intent(ActStartActivity.this, ActFinishActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);当然活动B内部的跳转代码也要设置同样的启动标志 Intent intentnew Intent(ActFinishActivity.this, ActStartActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);2登录成功后不再返回登录页面 背景介绍很多App第一次打开都要求用户登录登录成功再进入App首页如果这时按下返回键发现并没有回到上一个登录页面而是直接退出App了这又是什么缘故呢原来用户登录成功后App便记下用户的登录信息接下来默认该用户是登录状态自然不必重新输入用户名和密码。既然默认用户已经登录哪里还需要回到登录页面不光登录页面登录之前的其他页面包括获取验证码、找回密码等页面都不应回去每次登录成功后整个App就焕然一新仿佛忘记有登录页面这回事。 设计思想对于回不去的登录页面情况可以设置启动标志FLAG_ACTIVITY_CLEAR_TASK该标志会清空当前活动栈里的所有实例。不过全部清空之后意味着当前栈没法用了必须另外找个活动栈才行也就是同时设置启动标志FLAG_ACTIVITY_NEW_TASK该标志用于开辟新任务的活动栈这也就是为什么FLAG_ACTIVITY_CLEAR_TASK要配合着FLAG_ACTIVITY_NEW_TASK使用的原因如果没有设置FLAG_ACTIVITY_NEW_TASK则栈内对应的Activity销毁重新创建。 于是离开登录页面的跳转代码变成下面这样 Intent intentnew Intent(ActStartActivity.this,ActFinishActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);信息传递 Intent Intent是各个组件之间信息沟通的桥梁它用于Android组件之间的通信主要完成下面工作 标明本次通信请求从哪里来、到哪里去、要怎么走。发起方携带本次通信需要的数据内容接收方从收到的意图中解析数据。发起方若想判断接收方的处理结果意图就要负责让接收方传回应答的数据内容。 Intent的组成部分 元素名称设置方法说明与用途ComponentsetComponent组件它指定意图的来源与目标ActionsetAction动作它指定意图的动作行为DatasetData即Uri它指定动作要操纵的数据路径CategoryaddCategory类别它指定意图的操作类别TypesetType数据类型它指定消息的数据类型ExtrasputExtras扩展信息它指定装载的包裹信息FlagssetFlags标志位它指定活动的启动标志 显式Intent 显式意图直接指定来源活动与目标活动属于精确匹配。 在构建一个意图对象时需要指定两个参数第一个参数表示跳转的来源页面即“来源Activity.this”第二个参数表示待跳转的页面即“目标Activity.class”具体的意图构建方式有如下3种 1在Intent的构造函数中指定 Intent intentnew Intent(this,ActNextActivity.class);2调用意图对象的setClass方法指定 Intent intentnew Intent(); intent.setClass(this,ActNextActivity.class);3调用意图的setComponent方法指定 Intent intentnew Intent(); ComponentName componentnew ComponentName(this,ActNextActivity.class); intent.setComponent(component);隐式Intent 没有明确指定要跳转的目标活动只给出一个动作字符让系统自动匹配属于模糊匹配。 动作名称既可以通过setAction方法指定也可以通过构造函数Intent(String action)直接生成意图对象。 常见的系统动作如下 Intent类的系统动作变量名系统动作的常量值说明ACTION_MAINandroid.intent.action.MAINApp启动时的入口ACTION_VIEWandroid.intent.action.VIEW向用户显示数据ACTION_SENDandroid.intent.action.SEND分享内容ACTION_CALLandroid.intent.action.CALL直接拨号ACTION_DIALandroid.intent.action.DIAL准备拨号ACTION_SENDTOandroid.intent.action.SENDTO发送短信ACTION_ANSWERandroid.intent.action.ANSWER接听电话 1跳转到自己开发的APP 如果想要跳转到同一项目的不同模块module需要在目标模块的清单文件中做如下操作 activityandroid:name.CalculatorActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filterintent-filteraction android:nameandroid.intent.action.WMY /category android:nameandroid.intent.category.DEFAULT //intent-filter /activity两个intent-filter表示CalculatorActivity有两种启动方式第一种是直接在桌面点图标来启动第二种是通过其他应用来启动。 以及需要在源模块的交互代码中做以下操作 if(v.getId()R.id.btn_my){Intent intentnew Intent();intent.setAction(android.intent.action.WMY);intent.addCategory(Intent.CATEGORY_DEFAULT);startActivity(intent); }注系统应用因为没有对应的Activity.class所以只能通过隐式Intent跳转。系统应用就是找不到对应Activity的应用。 2跳转到手机自带的系统应用 如上面常见的Intent类的系统动作所示以准备拨号和发短信为例 String phoneNo12345;Intent intentnew Intent();if(v.getId()R.id.btn_dial){//设置意图动作为准备拨号intent.setAction(Intent.ACTION_DIAL);//声明一个拨号的UriUri uri Uri.parse(tel:phoneNo);intent.setData(uri);startActivity(intent);}else if(v.getId()R.id.btn_sms){intent.setAction(Intent.ACTION_SENDTO);Uri uri2Uri.parse(smsto:phoneNo);intent.setData(uri2);startActivity(intent);}整体代码如下 ActionUriActivity.java package com.example.myapplicationtwo; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; public class ActionUriActivity extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_action_uri);findViewById(R.id.btn_dial).setOnClickListener(this);findViewById(R.id.btn_sms).setOnClickListener(this);findViewById(R.id.btn_my).setOnClickListener(this);}Overridepublic void onClick(View v) {String phoneNo12345;Intent intentnew Intent();if(v.getId()R.id.btn_dial){//设置意图动作为准备拨号intent.setAction(Intent.ACTION_DIAL);//声明一个拨号的UriUri uri Uri.parse(tel:phoneNo);intent.setData(uri);startActivity(intent);}else if(v.getId()R.id.btn_sms){intent.setAction(Intent.ACTION_SENDTO);Uri uri2Uri.parse(smsto:phoneNo);intent.setData(uri2);startActivity(intent);}else if(v.getId()R.id.btn_my){intent.setAction(android.intent.action.WMY);intent.addCategory(Intent.CATEGORY_DEFAULT);startActivity(intent);}} }activity_action_uri.xml ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalTextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:padding5dpandroid:text点击以下按钮将向号码12345发起请求/Buttonandroid:idid/btn_dialandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text跳到拨号页面/Buttonandroid:idid/btn_smsandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text跳到短信页面/Buttonandroid:idid/btn_myandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text跳到我的页面/ /LinearLayout目标APP清单文件AndroidManifest.xml ?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidapplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.Experiment01activityandroid:name.CalculatorActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filterintent-filteraction android:nameandroid.intent.action.WMY /category android:nameandroid.intent.category.DEFAULT //intent-filter/activity/application /manifest向下一个Activity发送数据 Intent使用Bundle对象存放待传递的数据信息。 Bundle对象操作各类型数据的读写方法说明如下 数据类型读方法写方法整型数getIntputInt浮点数getFloatputFloat双精度数getDoubleputDouble布尔值getBooleanputBoolean字符串getStringputString字符串数组getStringArrayputStringArray字符串列表getStringArrayListputStringArrayList可序列化序列getSerializableputSerializable 在代码中发送消息包裹调用意图对象的putExtras方法即可存入消息包裹 //ActSendActivity.java Intent intentnew Intent(); Bundle bundlenew Bundle(); bundle.putString(request_time,DateUtil.getNowTime());//getNowTime是编写好的utils工具包中DateUtil工具库中用于获取当前事件的函数 bundle.putInt(request_count,1); intent.putExtras(bundle); startActivity(intent)在代码中接收消息包裹调用意图对象的getExtras方法即可取出消息包裹 //ActReceiveActivity.java Bundle bundlegetIntent().getExtras(); String request_timebundle.getString(request_time); Int request_countbundle.getInt(request_count);向上一个Activity返回数据 处理下一个页面的应答数据详细步骤如下 ①上一个页面打包好请求数据调用ActivityResultLauncher方法执行跳转动作。 ②下一个页面接收并解析请求数据进行相应处理。 ③下一个页面在返回上一个页面时打包应答数据并调用setResult方法返回数据包裹。 ④上一个页面重写方法onActivityResult解析获得下一个页面的返回数据。 注startActivityForResult方法已经过时。 以请求方Activity与应答方Activity之间的数据传递为例详细描述该过程 请求方 ①ActRequestActivity.java package com.example.myapplicationtwo; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; import com.example.myapplicationtwo.utils.DateUtil; public class ActRequestActivity extends AppCompatActivity implements View.OnClickListener {private static final String mRequest你直接给我坐下;private ActivityResultLauncherIntent register;private TextView tv_request,tv_response;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_act_request);tv_requestfindViewById(R.id.tv_request);tv_request.setText(待发送的信息是: mRequest);tv_responsefindViewById(R.id.tv_response);findViewById(R.id.btn_request).setOnClickListener(this);register registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result - {if (result!null){Intent data result.getData();if(data!null result.getResultCode()RESULT_OK){Bundle bundledata.getExtras();String response_timebundle.getString(response_time);String response_contentbundle.getString(response_content);String descString.format(收到返回信息\n应答时间为%s\n应答内容为%s,response_time,response_content);//把返回信息的详情显示在文本视图上tv_response.setText(desc);}}});}Overridepublic void onClick(View v) {Intent intentnew Intent(ActRequestActivity.this,ActResponseActivity.class);Bundle bundlenew Bundle();bundle.putString(request_time, DateUtil.getNowTime());bundle.putString(request_content,mRequest);intent.putExtras(bundle);register.launch(intent);} }②activity_act_request.xml ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.ActRequestActivityandroid:orientationvertical!--上一个页面发送的内容--TextViewandroid:idid/tv_requestandroid:layout_widthmatch_parentandroid:layout_heightwrap_content/Buttonandroid:idid/btn_requestandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:text传送请求数据/!--下一个页面应答的内容--TextViewandroid:idid/tv_responseandroid:layout_widthmatch_parentandroid:layout_heightwrap_content/ /LinearLayout应答方 ①ActResponseActivity.java package com.example.myapplicationtwo; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; import com.example.myapplicationtwo.utils.DateUtil;public class ActResponseActivity extends AppCompatActivity implements View.OnClickListener {private static final String mResponse真的太没实力了;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_act_response);TextView tv_requestfindViewById(R.id.tv_request);//获取从上一个页面传来的数据Bundle bundlegetIntent().getExtras();String request_timebundle.getString(request_time);String request_contentbundle.getString(request_content);String descString.format(收到请求信息\n请求时间为%s\n请求内容为%s,request_time,request_content);//把请求的信息显示在文本视图上面tv_request.setText(desc);findViewById(R.id.btn_response).setOnClickListener(this);TextView tv_responsefindViewById(R.id.tv_response);tv_response.setText(待返回的消息为mResponse);}Overridepublic void onClick(View v) {//携带应答数据Intent intentnew Intent();Bundle bundlenew Bundle();bundle.putString(response_time,DateUtil.getNowTime());bundle.putString(response_content,mResponse);intent.putExtras(bundle);//携带意图返回上一个页面 RESULT_OK表示处理成功setResult(Activity.RESULT_OK,intent);//强行结束当前页面 携带数据返回上一个页面finish();} }②activity_act_response.xml ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.ActResponseActivityandroid:orientationvertical!--上一个页面发送的内容--TextViewandroid:idid/tv_requestandroid:layout_widthmatch_parentandroid:layout_heightwrap_content/Buttonandroid:idid/btn_responseandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:text传送请求数据/!--下一个页面应答的内容--TextViewandroid:idid/tv_responseandroid:layout_widthmatch_parentandroid:layout_heightwrap_content/ /LinearLayout运行效果 附加信息 利用资源文件配置字符串 !--values/string.xml-- string nameidea真的是太没实力了/string//MainActivity.java String ideagetString(R.string.idea);利用元数据传递配置信息 在Java代码中获取元数据信息的步骤分为下列三步 调用getPackageManager方法获得当前应用的包管理器调用包管理器的getActivityInfo方法获得当前活动的信息对象活动信息对象的metaData是Bundle包裹类型调用包裹对象的getString即可获得指定名称的参数值 !--AndroidManifest.xml-- activityandroid:name.MainActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filtermeta-data android:nameidea android:value真的是太没实力了/ /activity//MainActivity.java //获取应用包管理器PackageManager pm getPackageManager();try {//从应用包管理器中获取当前的活动信息ActivityInfo info pm.getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);//获取活动附加的元数据信息Bundle bundleinfo.metaData;String idea_meta bundle.getString(idea);} catch (PackageManager.NameNotFoundException e) {throw new RuntimeException(e);}给应用页面注册快捷方式 元数据不仅能传递简单的字符串参数还能传送更加复杂的资源数据比如说支付宝的快捷方式菜单。 ①首先在Project视图下的res目录下新建文件夹xml在xml文件夹中新建一个values xml file其名为shortcuts.xml意为“捷径”。 ②在AndroidManifest.xml文件下的主活动中添加元数据使得长按会弹出之前xml文件下的shortcuts.xml菜单。 activityandroid:name.MainActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filtermeta-data android:nameandroid.app.shortcuts android:resourcexml/shortcuts/ /activity③在shortcuts.xml文件中编写菜单列表内容。 其中shortcutShortLabel和shortcutLongtLabel中的内容通过string.xml字符串资源文件定义。 targetPackage为java文件下的文件名targetClass为捷径跳转的Activity名称这些待跳转的Activity因为是通过其他Activity启动的所以需要在清单文件中将它们的enabled属性设置为true。 ?xml version1.0 encodingutf-8? shortcuts xmlns:androidhttp://schemas.android.com/apk/res/androidshortcutandroid:shortcutIdfirstandroid:enabledtrueandroid:iconmipmap/ic_launcherandroid:shortcutShortLabelstring/first_shortandroid:shortcutLongLabelstring/first_longintentandroid:actionandroid.intent.action.VIEWandroid:targetPackagecom.example.myapplicationtwoandroid:targetClasscom.example.myapplicationtwo.ActStartActivity/categories android:nameandroid.shortcut.conversation//shortcutshortcutandroid:shortcutIdsecondandroid:enabledtrueandroid:iconmipmap/ic_launcherandroid:shortcutShortLabelstring/second_shortandroid:shortcutLongLabelstring/second_longintentandroid:actionandroid.intent.action.VIEWandroid:targetPackagecom.example.myapplicationtwoandroid:targetClasscom.example.myapplicationtwo.ActRequestActivity/categories android:nameandroid.shortcut.conversation//shortcutshortcutandroid:shortcutIdthirdandroid:enabledtrueandroid:iconmipmap/ic_launcherandroid:shortcutShortLabelstring/third_shortandroid:shortcutLongLabelstring/third_longintentandroid:actionandroid.intent.action.VIEWandroid:targetPackagecom.example.myapplicationtwoandroid:targetClasscom.example.myapplicationtwo.ActionUriActivity/categories android:nameandroid.shortcut.conversation//shortcut /shortcuts④效果展示。
http://www.tj-hxxt.cn/news/130209.html

相关文章:

  • 大气的个人网站简约网站版式
  • 义乌进货网平台自己的网站做怎样的优化调整
  • 网站服务器崩溃一般多久可以恢复济南迅翔网站建设
  • 六安市 网站集约化建设网站开发人员工资计入无形资产
  • 太原做学校网站的公司帮人做网站赚钱吗
  • 网站建设的公司地址.net网站开发实训体会
  • html网站地图制作网站建设与维护成绩查询
  • 网站建设规范布局无线网站建设
  • 自己做网站流程快速网站仿制
  • 做网站对服务器什么要求高蚌埠企业做网站
  • designer怎么做网站公司一定建设网站吗
  • 淘宝是行业门户网站的盈利模式是什么网站建设运营属于经营范围
  • 辽宁网站备案要多久工装公司排名前十
  • 电商网站建设功能北碚区网络营销推广公司
  • 双阳区住房和城乡建设局网站lumen 做企业网站
  • 站长之家网站建设制作软件开发设计培训
  • 知名企业门户网站建设联系电话广州海珠区二手房房价
  • 如何知道网站有没有备案做淘宝要用到哪些网站
  • 南昌建设企业网站公司吉林最新消息今天新增
  • vps 做网站wordpress图片分页插件下载
  • 网站建设980元wordpress不在根目录
  • 西宁高端网站制作广告设计与制作
  • 一站式商家服务平台知名企业公司
  • 一件代发50个货源网站石家庄百度快照优化排名
  • 大学校园门户网站建设方案江淮网站开发
  • 兰州展柜公司网站建设手机上登录qq网页版
  • 网站开发的实施方案网线制作实训报告
  • 网站制作建设有哪些旅游系统
  • 牙科医院网站推广方案网站建设实战教程
  • 花店网站建设量力商务大厦网站建设