0 0

在onResume()中调用getIntent()得不到Extra的问题,求解3

我有一个AlarmManager定期发送PendingIntent,如下:
Intent alarmIntent=new Intent(context,Notes.class);
alarmIntent.putExtra("MemoID", memoid);
PendingIntent pIntent=PendingIntent.getActivity(context, 0, alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);

这个PendingIntent会打开一个Notes.我在Notes中的onStart()方法中调用
getIntent().getIntExtra("MemoID", -1);能够得到想要的值。但是这种方法AlarmManager每次触发时都会生成一个Notes,但我不想让生成多个Notes对象。因此,我在AndroidManifest.xml中设置了

      <activity android:name=".Notes"
      android:launchMode="singleTask"/>

看,launchMode设置成了singleTask模式,这样AlarmManager每次触发时,就不会调用onStart()方法了,而是调用onResume()方法,为了得到MemoID的值,我在onResume()中使用getIntent().getIntExtra("MemoID", -1);却得不到想要的值了,这是为什么啊?
2011年8月08日 21:05

3个答案 按时间排序 按投票排序

0 0

难道不行??我测试通过的··

2011年8月12日 22:45
0 0

2011年8月08日 22:34
0 0

这个我测试通过应该是没问题

AlarmtestActivity.java
package com.test.alarmtest;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;

public class AlarmtestActivity extends Activity {
    /** Called when the activity is first created. */
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        int i=10000;
        Intent alarmIntent=new Intent(this,Notes.class); 
        alarmIntent.putExtra("MemoID", i); 
        PendingIntent pIntent=PendingIntent.getActivity(this, 0, alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT); 
        AlarmManager alarm=(AlarmManager)getSystemService(ALARM_SERVICE);  
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),5*1000, pIntent);//4秒后执

    }
}


Notes.java
public class Notes extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	}


	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		int i=getIntent().getIntExtra("MemoID", 0);
		Log.v("Node","onResume"+i);
	}

	

}

<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name=".AlarmtestActivity" 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=".Notes"
		android:launchMode="singleTask"
		></activity>
	</application>

2011年8月08日 22:32

相关推荐

    可显示onstart、onrestart、onresume等调用次序的hellworld程序

    2. **onStart()**: 在onCreate()之后,如果Activity不可见(例如,被另一个Activity覆盖),系统会调用onStart(),使得Activity变得对用户可见,但可能还未完全显示。在此阶段,可以执行一些与界面显示相关的操作。 ...

    activity onResume的理解,跨应用广播

    在Android系统中,Activity的生命周期是开发者理解和掌握的重点,其中`onResume()`方法扮演着至关重要的角色。`onResume()`是Activity进入可见状态时调用的最后一个方法,意味着用户现在可以与应用程序进行交互。当...

    Android的生命周期调用顺序

    在Android应用开发中,理解并掌握Activity的生命周期是至关重要的。生命周期是指一个应用程序组件(如Activity)从创建到销毁的整个过程,它涉及到各种方法的调用,这些方法的执行顺序构成了Android应用运行时的行为...

    android调用另一个activity

    3. **Activity的生命周期**: 在Android中,每个Activity都有一个完整的生命周期,包括onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()等方法。在Activity之间切换时,这些方法会被调用,...

    android 浏览器 调用系统下载功能

    8. **生命周期管理**:考虑到Activity和Fragment的生命周期,需要确保在适当的时候启动和停止下载,例如在Activity的onResume()和onPause()中控制。 9. **错误处理**:在下载过程中可能会遇到各种问题,如网络中断...

    Android调用百度地图

    对于Fragment中的使用,可以将上述代码放入Fragment中,同时需要处理生命周期方法,如`onResume()`和`onPause()`,以便在Fragment可见时启动定位,不可见时停止定位。 以上就是Android应用中调用百度地图并实现定位...

    Android笔试题.docx

    在 Intent 对象中,我们可以使用 putExtra() 方法将数据存储在 Intent 中,然后在另外一个 Activity 中使用 getIntent() 方法来获取该数据。 理解 Activity 生命周期和启动模式是 Android 应用开发的基础知识,掌握...

    acitvity生命周期方法调用顺序与测试日志

    Activity生命周期中的各个方法在不同场景下会被系统自动调用,掌握这些方法的调用顺序对于优化应用性能、处理资源管理和用户交互至关重要。在本话题中,我们将详细探讨Activity的生命周期方法以及如何通过测试日志来...

    Android Activity中onStart()和onResume()的区别分析

    紧接着 `onStart()`,`onResume()` 方法会被调用,这发生在Activity从暂停(Paused)状态转换到活动(Resumed)状态时。在 `onResume()` 中,Activity完全处于前台,具有用户焦点,并且能够接受用户的输入。因此,这...

    Android-借助WebSocket完成Android本地代码调用JavaScript代码的插件

    在Android开发中,有时我们需要实现从Java本地代码调用JavaScript代码的功能,这在混合式应用开发中尤为常见。WebSocket提供了一种实时、双向通信的机制,使得这种跨平台的交互成为可能。本教程将深入探讨如何借助...

    android调用二维码扫描功能

    这通常在`onResume()`中进行,而在`onPause()`中释放资源。 - 实例化`CaptureManager`,并将其与SurfaceView绑定,设置扫描区域和回调函数。`CaptureManager`会处理摄像头的预览和扫描过程。 4. **扫描回调** - ...

    Android面试题21

    数据可以通过Intent在Activity之间传递,使用`putExtra()`方法添加额外信息到Intent中,如`intent.putExtra("key", "value")`。在接收端,通过`getIntent()`获取Intent对象,并使用`getStringExtra()`等方法获取...

    调用Android WebView 的例子(实现浏览器功能)

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,无需跳转到外部浏览器。在Android SDK 2.3.*版本中,WebView已经相当成熟,可以满足基本的网页浏览需求。以下是一个...

    可显示onstart、onrestart等调用次序的helloworld程序

    接着,`onStart()`方法在Activity变得可见但并未完全出现在用户面前时调用。此时,Activity正从不可见状态变为可见状态,但可能仍被其他窗口遮挡。在这个阶段,可能执行一些与显示相关的操作,比如启动动画或加载...

    android 不同activity切换时它们的回调函数调用逻辑的研究

    紧接着,`onStart()`方法会被调用,使Activity变得可见但不一定是前台活动的。随后,`onResume()`方法执行,这时Activity完全可见并可以与用户交互。 在两个Activity之间切换时,如果用户按下返回键或新Activity...

    安卓中数据传递

    而`onPause()`在Activity失去焦点但仍在栈中时调用,`onResume()`则在Activity重新获得焦点时调用。在实际应用中,我们需要根据Activity的状态合理处理数据和界面更新。 例如,我们有两个Activity:FirstActivity和...

    应用源码之调用中的软键盘.zip

    在Android开发中,软键盘的调用与管理是开发者经常遇到的问题。本资源"应用源码之调用中的软键盘.zip"提供了关于Android系统中如何处理软键盘显示和隐藏的源码示例,适合进行代码学习和毕业设计的参考。下面我们将...

    Activity 工作流节点新增节点和获取节点属性修改底层文件

    这些配置在应用运行期间通常不能被修改,但可以通过在代码中创建并启动新的Intent来改变某些行为。 对于提供的“修改文件java”,这可能是指开发者需要在Java源代码中进行上述的修改操作,例如增加新的Activity类,...

    调用GoogleMap源码,实现点击事件在注释里面_Android源码.zip

    首先,确保在OnCreate方法中调用MapView的initialize方法,然后在OnResume和OnPause方法中分别调用onResume和onPause。此外,还要记得在OnDestroy中释放资源。 ```java private MapView mapView; private GoogleMap...

Global site tag (gtag.js) - Google Analytics