对于android–Intentextras没有更新感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍android更新提示框,并为您提供关于Android7BroadcastReceiveron
对于android – Intent extras没有更新感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍android更新提示框,并为您提供关于Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据、android EditText的android:gravity="right"和android:hint="开源"两属性不能同时生效的有关问题、Android Intent Context令人困惑、Android Intents – putExtra,多次出现会发生什么?的有用信息。
本文目录一览:- android – Intent extras没有更新(android更新提示框)
- Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据
- android EditText的android:gravity="right"和android:hint="开源"两属性不能同时生效的有关问题
- Android Intent Context令人困惑
- Android Intents – putExtra,多次出现会发生什么?
android – Intent extras没有更新(android更新提示框)
<intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter>
在MainActivity.java中,我有以下代码
@Override public void onResume() { super.onResume(); Intent receivedIntent=getIntent(); etSearch.setText(getStringFromIntent(receivedIntent)); } public String getStringFromIntent(Intent receivedIntent) { // get the action String receivedAction = receivedIntent.getAction(); // find out what we are dealing with String receivedType = receivedIntent.getType(); if (receivedAction.equals(Intent.ACTION_SEND)) { if (receivedType.startsWith("text/")) { // get the received text String receivedText = receivedIntent .getStringExtra(Intent.EXTRA_TEXT); // check we have a string if (receivedText != null) { // set the text return receivedText.trim(); } } } return ""; }
我第一次尝试分享一切正常
当我试图再次这样做时,文本不会更新
我认为这是因为onCreate().所以我将代码移到onResume()中.没啥事儿.
根据这个solution我添加了receivedIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);和
protected void onNewIntent(Intent intent) { super.onNewIntent(intent); this.setIntent(intent); }
没有效果.
我该怎么办才能更新意图?
解决方法
Intent extras not removed/replaced
要么
PendingIntent.FLAG_ONE_SHOT
private void send(Intent intentShowApp) { PendingIntent showAppPendingIntent = PendingIntent.getActivity(context,intentShowApp,PendingIntent.FLAG_ONE_SHOT); try { showAppPendingIntent.send(); } catch (CanceledException e) { e.printstacktrace(); } }
Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据
Bundle bundle = intent.getExtras(); textMessage = bundle.getString("TEXT_MESSAGE"); ArrayList<MyPhoneNumber> phoneNumbersToText = bundle.getParcelableArrayList("PHONE_NUMBERS");
textMessage和phoneNumbersToText都为null.
这是我的清单文件中的一个片段:
<receiver android:process=":remote" android:name="com.friscosoftware.timelytextbase.AlarmReceiver"></receiver>
这是加载数据的片段:
Intent intent = new Intent(context,AlarmReceiver.class); intent.putExtra(Constants.TEXT_MESSAGE,scheduledItem.getMessagetoSend()); intent.putExtra(Constants.PHONE_NUMBERS,scheduledItem.getPhoneNumbersToText()); PendingIntent sender = PendingIntent.getbroadcast(context,getRequestCodeFromKey(key),intent,PendingIntent.FLAG_UPDATE_CURRENT); // Get the AlarmManager service AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP,selectedDateTime.getTimeInMillis(),sender);
相同的代码在Android 6中运行良好.
有关Android 7需要进行哪些更改的任何想法?
谢谢
解决方法
我的解决方案是使用SharedPreferences来存储我的自定义对象.然后,当alarmmanager触发时,我运行以下命令将对象取出.
tl; dr,我使用GSON将我的自定义POJO作为字符串序列化/反序列化到SharedPrefs中.例如:
String json = getSharedPrefs(context).getString(NotificationUtility.NEXT_REMINDER_KEY,"No reminder found"); try { Gson gson = new Gson(); Reminder reminder = gson.fromJson(json,Reminder.class); if (reminder != null) { return reminder; } } catch (Exception error) { Log.i(TAG,"Error parsing json: " + error.getMessage(),error); return null; } return null;
希望这可以帮助你!
android EditText的android:gravity="right"和android:hint="开源"两属性不能同时生效的有关问题
当我用gravity="right"时 hint提示信息就没法出现。不写java代码只是在xml布局文件中要怎样设置属性才能实现文本位置靠右而又有提示信息呢。Android Intent Context令人困惑
有人可以向我解释一下吗:
Intent intent = new Intent(Context, AlarmReceiver.class);
我从不理解,我认真地认为,如果有人不尝试向我深入解释,我永远也不会。这整个上下文使我感到困惑。有时它是这样的:
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
有时它不会那样工作,但只接受:
Intent intent = new Intent(context, AlarmReceiver.class);
有时是:
Intent intent = new Intent(this, AlarmReceiver.class);
等等等等等。
我了解上下文的基础,但是有几项?为什么日食会一次又一次地向我抛出错误呢?为什么有时需要声明上下文?:
Context context;
我无法在所有情况下都找到合适的环境,我怎么知道在每种情况下都合适的环境?
答案1
小编典典首先,让我解释一下上下文会更好一些,然后让我们继续介绍如何使用和接收它。本质上,上下文是将资源链接到程序的参考。每个对象都有自己的上下文,该上下文包含设置该对象所需的资源。除其他目的外,还需要创建许多对象并获得程序标识信息。这使得建立新的视图和活动非常宝贵,但也可以用于其他目的。另请参阅此答案以获取更多信息。
一个项目的上下文可以来自多个地方。有时它被存储并且必须被检索,有时它是被继承的。基本上,这是面向对象的编程。
仅举几个例子:
活动继承上下文。因此,如果您处于活动中,则只需要传递自己即可使用上下文。它还包含一个指向的指针getBaseContext()
。如果您需要整个应用程序上下文,则有时可能需要引用它,但是很可能不会有一阵子。
视图不继承上下文。但是,它确实具有方法getContext()。如果需要从视图中获取上下文,则这是获取上下文的方法。此上下文将不完整,而仅具有View内容的上下文。
片段也不会继承上下文。它们包含方法getActivity(),如果Fragment处于活动状态,则该方法将返回活动,即Fragment的上下文。
BroadcastReceivers也不继承上下文。实际上,它们根本不包含上下文,而只是在接收到事件时接收当前上下文(例如onReceive(Context
context,Intent
intent))
Android Intents – putExtra,多次出现会发生什么?
如果说,我有两种方法可能会重叠同一个字段会发生什么,例如:
myIntent.putExtra("returnVal1",1000); // many lines of code,later on... myIntent.putExtra("returnVal1",5);
“returnVal1”会在意图中更新为5,它会保持在1000,还是会导致运行时崩溃?
提前谢谢,从手机发送,而不是在带有eclipse atm的计算机上,或者我会测试自己!
解决方法
今天的关于android – Intent extras没有更新和android更新提示框的分享已经结束,谢谢您的关注,如果想了解更多关于Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据、android EditText的android:gravity="right"和android:hint="开源"两属性不能同时生效的有关问题、Android Intent Context令人困惑、Android Intents – putExtra,多次出现会发生什么?的相关知识,请在本站进行查询。
本文标签: