`
Leif_冬
  • 浏览: 47460 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android onNewIntent

阅读更多

在Android应用程序开发的时候,从一个Activity启动另一个Activity并传递一些数据到新的Activity上非常简单,但是当您需要让后台运行的Activity回到前台并传递一些数据可能就会存在一点点小问题。

首先,在默认情况下,当您通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统都会创建一个新的Activity实例并显示出来。为了不让Activity实例化多次,我们需要通过在AndroidManifest.xml配置activity的加载方式(launchMode)以实现单任务模式,如下所示:

<activity android:label="@string/app_name" android:launchmode="singleTask"android:name="Activity1">
</activity>

 
launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法,如下所示:

protected void onNewIntent(Intent intent) {
     super.onNewIntent(intent);
     setIntent(intent);//must store the new intent unless getIntent() will return the old one
     processExtraData();
 }
不要忘记,系统可能会随时杀掉后台运行的Activity,如果这一切发生,那么系统就会调用onCreate方法,而不调用onNewIntent方法,一个好的解决方法就是在onCreate和onNewIntent方法中调用同一个处理数据的方法,如下所示:
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    processExtraData();
}
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
     setIntent(intent);//must store the new intent unless getIntent() will return the old one
     processExtraData()
 } 
private void processExtraData(){
     Intent intent = getIntent();
     //use the data received here
}

 

 

分享到:
评论

相关推荐

    Android onNewIntent()触发机制及注意事项

    一、onNewIntent() 在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent 1、其他应用发Intent,执行下列方法: onCreate onStart onResume 发Intent的...

    android onnewintent

    ### Android onNewIntent机制详解 #### 一、`onNewIntent()`方法介绍 在Android开发过程中,`onNewIntent()`方法对于理解应用内部如何处理来自外部或其他组件的意图(Intent)至关重要。此方法允许开发者捕获并响应...

    onNewIntent方法的使用

    在Android应用开发中,`onNewIntent()`方法是Activity生命周期中的一个重要组成部分,它与Intent对象紧密相关。Intent在Android系统中扮演着消息传递的角色,用于启动或传递数据给不同的组件,如Activity、Service等...

    onNewIntent

    在Android应用开发中,`onNewIntent()` 是一个关键的方法,尤其在处理Activity生命周期和Intent交互时。这个方法被调用通常表示当前Activity接收到一个新的Intent,而不是重新创建Activity实例。`onNewIntent()` ...

    activity的四种启动模式和onNewIntent的关系

    ### Activity的四种启动模式及其与onNewIntent的关系 在Android开发中,Activity是构成应用程序的基本单元之一,每个界面都对应一个Activity。为了更好地控制Activity的生命周期以及如何在多个Activity之间进行切换...

    Android中Activity的四种启动模式和onNewIntent()

    android 中activity的启动模式分为四种,(standard、singleTop、singTask、singleInstance),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧

    android:scheme 通过uri跳转到APP应用指定Activity

    在Android开发中,`android:scheme` 是一个关键的概念,用于构建自定义URL协议,使得外部应用或系统可以通过特定的URI来启动我们的应用程序中的特定Activity。这个特性在很多场景下非常有用,比如分享链接、广告点击...

    Android开发教程之Android系统搜索对话框(浮动搜索框)的使用--千锋培训

    你可以使用Loader或直接在`onNewIntent()`方法中处理Intent来获取搜索查询。 为了让用户能够触发搜索,你还需要在你的应用程序中提供一个调用搜索对话框的入口点。这通常是通过在选项菜单中添加一个搜索按钮,或者...

    android之searchview

    在Android开发中,`SearchView` 是一个非常重要的组件,它提供了一个用户友好的界面,让用户可以在应用中进行搜索操作。`SearchView`通常与`ActionBar`或`Toolbar`结合使用,增强了应用的搜索功能,使得用户能快速...

    android 通知栏跳转

    为此,需要在Activity的`onCreate()`或`onNewIntent()`方法中解析Intent中的数据,并根据需要更新界面。同时,为了提供良好的用户体验,Activity可能需要配置启动模式(例如,单实例模式),以避免重复创建相同的...

    android nfc读写实例

    在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于传输数据、支付和其他交互式应用。本实例将详细介绍如何在Android应用程序中实现NFC的读写功能,不过需要注意的是,由于...

    android NFC (读取M1卡内容)

    3. **处理NFC事件**:在你的`Activity`中覆写`onNewIntent()`方法,该方法会在NFC标签被检测到时被调用。在这里,你可以通过`getTag()`方法获取到`Tag`对象,它是所有NFC标签的基类。 4. **读取M1卡的UID**:M1卡的...

    android nfc MifareUltralight读写

    在Android平台上,NFC(Near Field Communication)技术是一种短距离无线通信方式,允许设备之间进行非接触式数据交换。Mifare Ultralight是NXP Semiconductors生产的一种无源RFID(Radio Frequency Identification...

    Android精简面试总结

    ### Android精简面试总结 #### 重要知识点梳理 在Android开发过程中,面试官经常会提问一些核心概念和技术细节,本文将围绕这些高频知识点进行详细的解析。 ### Activity的四种启动模式 在Android开发中,...

    android nfc 读取深圳通

    在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于数据交换、支付和其他便捷服务。本教程将详细讲解如何利用Android NFC功能读取深圳通卡,展示余额以及最近的10次消费...

    android网络编程面试题,Android面试题整理

    Android 网络编程面试题知识点总结 Android 网络编程面试题是 Android 开发者需要掌握的重要知识点。下面总结了 Android 网络编程面试题的知识点。 一、内存优化 * 内存泄漏的定义:程序在申请内存后无法释放本...

    android nfc 动态注册

    在Android平台上,NFC(Near Field Communication)技术允许设备间短距离无线通信,常用于数据交换、支付、标签读取等场景。动态注册是Android NFC功能的一个重要特性,它允许应用在运行时根据需要注册或注销NDEF...

    Android NFC读取标签UID

    在Android平台上,NFC(Near Field Communication)技术允许设备之间进行短距离通信,通常用于数据交换、支付和其他交互式应用。本教程将详细介绍如何使用Android NFC功能读取标签的UID(唯一标识符)。 首先,我们...

    Android调用系统的浮动搜索框实现搜索功能

    在Android应用开发中,为用户提供便捷的搜索功能是至关重要的,这可以提升用户体验并增加用户对应用的满意度。本文将详细介绍如何在Android中调用系统的浮动搜索框来实现这一功能,以此来帮助开发者构建高效、直观的...

Global site tag (gtag.js) - Google Analytics