其实,这本来是一件很简单的事情,但是我发现很多人问我这个问题,所以写篇小文章供参考。
系统提供了很多可以直接调用的Activity,通过指定的Intent就可以调用,比如打开搜索的:
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString")
startActivity(intent);
Intent.ACTION_WEB_SEARCH是一个字符串,是“搜索”这个Activity的标识,extra是传给这个activity的一些数据。发送出这个intent之后,系统根据action字符串Intent.ACTION_WEB_SEARCH知道了是要调用哪个activity,如果有重名,会弹出一个选择对话框。然后打开此activity,实现想要做的事情。
那么,我们自己怎么来实现呢。
首先,写一个activity,在AndroidManifest.xml里面的intent-filter中,给这个activity命名,
<intent-filter>
<action android:name="chroya.foo"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
然后安装。安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。
而要想打开这个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"chroya.foo",所以,这里用这个字符串就可以调用它了:
Intent intent = new Intent("chroya.foo");
startActivity(intent);
我用刚才举的那个系统的intent说明,它的activity里面使用getIntent().getBundleExtra(SearchManager.QUERY)来接收传递进来的搜索字符串参数。而这个SearchManager.QUERY是关键字。如果要自己实现这种功能,只需要定义好关键字,然后从BundleExtra中取就行了。
分享到:
相关推荐
2. **在Fragment中调用接口方法**:在Fragment中,当需要与Activity通信时,调用这个接口的方法。 ```java public class MyFragment extends Fragment { private OnFragmentInteractionListener mListener; // ....
然后,可以深入到"PersistentSearch-master"目录中,研究具体的代码实现,特别是与数据库交互的部分,如DAO(Data Access Object)层的代码,以及如何在Activity或Fragment中调用这些接口来实现搜索功能。...
源码通常会展示如何创建数据库对象,定义SQL语句,以及如何在Activity或Fragment中调用这些方法。通过阅读和分析源码,你可以学习到如何在生命周期方法中正确管理SQLite数据库的打开和关闭,以防止资源泄露。 “点...
总结,集成科大讯飞语音SDK到Unity安卓端涉及的关键步骤包括:理解SDK功能、解压并导入资源、配置Unity与原生接口、在Android Studio中集成SDK、生成.aar库、在Unity中调用接口、编写C#脚本以及测试应用。...
1.) 在项目根目录下创建jni目录,下面是要放进去的第一个文件Android.mk LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := main_jni #LOCAL_CFLAGS := LOCAL_SRC_FILES := main.cpp #LOCAL_...
通过分析这个项目,可以更深入地理解JNI的使用方法,包括如何在Android Studio中设置,如何编写C/C++代码,以及如何在Java中调用这些本地方法。 总结,"Android Studio JNI 调用demo"是一个实践教程,旨在帮助...
在提供的压缩包文件中,`JavaApk源码说明.txt`可能包含对源码的解释和使用说明,而`GaoDeTest`可能是实现上述功能的一个示例代码。`下载更多打包源码~.url`则可能是一个链接,用于获取更多的示例代码或扩展资料。 ...
其中,应用签名是一个重要的环节,微信提供的`Gen_Signature_Android.apk`工具可以帮助你生成应用签名。只需输入你的应用包名,即可得到应用签名。 XML配置文件中的示例代码如下: ```xml <!-- 友推SDK注册信息 -...
【标题】"Tom猫app android 开发.zip"是一个关于Android应用程序开发的教程资源包,主要针对使用Java语言的新手开发者。这个项目可能包含了一个模仿经典游戏"Tom猫"的应用程序开发过程,帮助初学者理解Android应用的...
本教程将通过一个名为"CmakeJniDemo"的项目,详细讲解如何在Android Studio中使用CMake构建JNI模块,并演示Java调用C/C++代码以及C/C++调用Java的方法。 首先,我们需要创建一个新的Android Studio项目,并在项目的...
接下来,我们来看看如何在Activity中调用这些XML定义的动画。 **(1) 代码生成动画** ```java private class RotateButtonListener implements OnClickListener { @Override public void onClick(View view) { ...
在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在原生应用内展示网页内容。然而,随着用户对交互性需求的提升,单纯展示网页已经不能满足需求,因此,集成像调用系统相机和相册这样的原生功能就...
在Android应用开发中,标题栏(Toolbar或者ActionBar)是用户界面的重要组成部分,它通常包含应用的标识、操作菜单...记得在每个使用自定义标题栏的Activity中调用相应的设置方法,确保返回按钮的正确显示和功能实现。
在这个例子中,我们创建了一个名为`WebPlugin`的内部类,并使用`@JavascriptInterface`注解标记其公开给JavaScript的方法。这些方法可以在HTML中的JavaScript代码中被调用,实现Java与JavaScript之间的通信。例如,...
在Android应用开发中,"Fragment"是Android SDK中的一个核心组件,主要用来处理用户界面的模块化。在大型复杂的应用中,使用Fragment可以使得UI设计更加灵活,方便维护和更新。"SimpleFragment"通常指的是一个基础的...