在 Pending Intents Android 中传递值
Posted
技术标签:
【中文标题】在 Pending Intents Android 中传递值【英文标题】:Passing values in Pending Intents Android 【发布时间】:2012-11-29 18:44:36 【问题描述】:我们能否在后台进程的未决意图中传递参数..
Intent ij = new Intent(context,DemoActivity.class);
PendingIntent operation = PendingIntent.getActivity(getBaseContext(),0,ij,Intent.FLAG_ACTIVITY_NEW_TASK);
AlarmManager alarmManager = (AlarmManager) getBaseContext().getSystemService(ALARM_SERVICE);
GregorianCalendar calendar = new GregorianCalendar(y, m, d,hr, mi);
long alarm_time = calendar.getTimeInMillis();
alarmManager.set(AlarmManager.RTC_WAKEUP,alarm_time,operation);
在此,我使用警报管理器来启动后台进程。通过使用这种方法,我可以传递任何变量或参数吗?
public class DemoActivity extends FragmentActivity
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
/** Creating an Alert Dialog Window */
AlertDemo alert = new AlertDemo();
/** Opening the Alert Dialog Window */
alert.show(getSupportFragmentManager(), "AlertDemo");
在警报演示类中,我只使用警报框.. 现在帮帮我,在哪里放置 Put Exatra 方法?..
【问题讨论】:
我认为您可以使用 Intent ij 传递值。 @Gowri shankar,我已经编辑了答案检查 【参考方案1】:是的,您可以在待处理的 Intent 中传递变量,如下所示:
Intent in = new Intent(context, DemoActivity.class );
in.putExtra( "notification_id", REGISTER_NOTIF_ID);
in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
in.putExtra("2", Variable);
in.putExtra("1", Variable);
in.putExtra("IMData", Variable);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, in, 0);
并在您的 DemoActivity 类的 onCreate 中执行以下操作:
Bundle extras = getIntent().getExtras();
userGetId = extras.getString("2");
userNameRecv = extras.getString("1");
userFriendId = extras.getString("IMData")
【讨论】:
请注意,此答案还显示了添加 Intent.FLAG_ACTIVITY_NEW_TASK 的正确方法,该方法在问题中使用不正确。 是的,我观察到了一个 如何在下一个活动(后台进程)中接收或获取变量!.. 通过这个我没有得到任何意图值事实上我在捆绑中得到空值以上是关于在 Pending Intents Android 中传递值的主要内容,如果未能解决你的问题,请参考以下文章
java 在Android测试中如何使用espresso-intents的示例
xml 使用Android Intents从图库/相机中拾取图像的实用程序
Android development Notes-3(Activity, Intents, and Tasks, Service, Content provider)