Tag: android activity

在暂停时如何让活动对本地广播作出反应?

在活动暂停或停止时,通过LocalBroadcastManager发送的广播会对活动(如果有)做出反应的最佳方式是什么? 如果LocalBroadcastManager与普通广播不同,我找不到太多细节,但如果活动在后台,它似乎仍然被称为事件。 但这会导致一些问题,因为只要未显示活动,就无法进行某些UI修改。 这就是为什么我更愿意在活动重回顶峰时处理所有广播。 但是我该怎么做呢 我正在考虑一个队列,它将获取在活动恢复运行状态时执行的可运行列表。 但我认为这是某种矫枉过正,因为机器人确实有一个机制。 那么这样做的正确方法是什么?

overridePendingTransition仅显示输入动画

当用户更改语言区域设置时,我想使用新的区域设置重新加载活动。 我想在完成活动并再次启动时创建一个动画过渡。 过渡动画如下: 退出动画是将活动缩放到屏幕中心。 输入动画是从屏幕中心缩放活动。 finish(); overridePendingTransition(0, R.anim.scale_to_center); Intent intent =new Intent(SettingsActivity.this, SettingsActivity.class); startActivity(intent); overridePendingTransition(R.anim.scale_from_center, 0); 我的scale_to_center.xml是: 我的scale_from_center.xml是: 问题是只出现输入转换并且不显示退出转换。 我试图在退出转换中添加延迟,但它也不起作用。 但是,当我将代码更改为仅为应用程序的退出设置动画时。 有效。 finish(); overridePendingTransition(0, R.anim.scale_to_center); 谢谢。

怎么回到android中的主要活动?

我有一个MainActivity “A”,它有一个启动活动“B”的按钮,活动“B”有另一个启动活动“C”的按钮。 在活动B和C中,两者都有onBackPressed()方法,它出现一个AlertDialog询问用户是否想要返回MainActivity 。 如果他们按是,程序应显示MainActiviy。 问题是:在活动B中,我没有问题,只需调用finish()方法,然后出现MainActivity ,但问题出在活动C中,如果我调用finish()方法,则程序返回活动B.如何从活动C ??回到MainActivity

如何将包含Bitmap的对象传递给另一个活动

所以我是Android开发中的新手,我试图制作一个加载图片(Bitmap)的注册活动( UserPrivateInfoSignUpActivity.java )并创建一个我想要传递给另一个Activity( UserGeneralDataSignUpActivity )的UserPersona对象。 我做了一个解决方案的研究,不知怎的,我仍然无法传递Bitmap图像,虽然它已经implements Parcelable 。 有什么建议么? 这是我的代码(没有getter和setter) PersonaUser.java: public class PersonaUser implements Parcelable{ private String puName; private String puEmailAddress; private String puCountry; private String puCity; private int puAge; private Bitmap puImage; public PersonaUser(String puName, String puEmailAddress, String puCountry, String puCity, int puAge, Bitmap puImage){ this.puName = puName; this.puEmailAddress = puEmailAddress; this.puCountry = […]

将视图从一个活动传递到另一个活

我正在尝试将视图从一个活动传递到另一个活动。 在我的第一个活动onButtonClick ,我使用Intent导航到另一个活动。 我写了这行setContentView(R.layout.main); 在第1个活动中,还声明了一个graphView 。 现在的问题是,我想在第二个活动中填充graphView但是它的引用即mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot); 在第1次活动中出现。 那么我怎样才能在第二次活动中mySimpleXYPlot ? 如果我使用 setContentView(R.layout.main); mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot); 在第二个活动中,整个布局重新启动,我不想发生:( 任何帮助都将得到满足!

Android AlarmManager – 从其他活动取消

我有一个家庭作业计划器应用程序,我想创建一个警报,以提醒用户前一天晚上/在某个时间。 我有一个名为AddNewHomework的Activity,用户创建一个新的家庭作业项目并将其添加到数据库中。 然后调用此代码。 Intent i = new Intent(this, AlarmNotificationReceiver.class); i.putExtra(“title”, title); PendingIntent pi = PendingIntent.getBroadcast(this.getApplicationContext(), (int) id, i, 0); AlarmManager mAlarm = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); mAlarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10 * 1000, pi); 这将创建一个新的警报,在10秒内触发并创建通知。 我的问题是我有另一个名为HomeworkList的活动,它包含一个ListView并显示存储在数据库中的所有家庭作业。 如果用户长按一个然后他们可以选择删除它,但是从数据库中删除它不会删除警报。 我已经找到了可以用来删除警报的代码但是我没有找到任何可以让我理解如何从这个不同的活动中取消警报的内容。 我知道我需要使PendingIntent相同,但是我怎么做,因为我无法从其他类访问上下文。 (我不认为)。

通过URL“appname://com.appname/”从Web浏览器打开活动后清除堆栈

我的应用程序有一个活动,它在浏览器中启动oauth授权过程,最后浏览器接收重定向到url“appname://com.appname”,它回调我的活动。 (活动声明可以查看此类url) 一切都很好,但如果用户按下“返回”,他会回到网络浏览器。 我希望在回调活动时清除历史堆栈,以使此活动成为此任务的根和顶部。 我可以在这种情况下使用哪些旗帜或挂钩? 我发现只有一个丑陋的解决方案:接收appname://com.appname urls到特殊的“Gag”活动,它将在其onResume上启动主要活动。 我尝试将主要活动“singleTask”,在新任务中启动浏览器,设置标志NO_HISTORY和EXLUDE_FROM_RECENTS,CLEAR_TOP,设置clearTaskOnLaunch =“true”。 尝试了清单中标志和标签的许多组合 – 没有任何帮助。 我解决了这个问题: 1)在AndroidManifest.xml中设置clearTaskOnLaunch =“true” 2)在新任务中启动浏览器(使用FLAG_ACTIVITY_NEW_TASK),并完成当前活动(以完成当前任务)。 3)覆盖onBackPressed:而不是完成此活动调用moveTaskToBack(true); 当用户按下后 – 任务(浏览器在其根目录)转到后台并且用户看到他的主屏幕。 当用户再次启动应用程序时 – 它从现有实例打开,清除任务并成为它的根(因为clearTaskOnLaunch =“true”)

Android如何实现AsyncTask的并行执行

我需要允许多个AsyncTask同时运行。 这是我的AsyncTask: private void callAPI(String user_id) { new AsyncTask() { protected String doInBackground(Void… parameters) { List params = new ArrayList(); params.add(new BasicNameValuePair(“user_id”, user_id)); return api.post(“”, params); }//end doInBackground protected void onPostExecute(String result) { Log.i(TAG + “POST() => ” + result); }//end onPostExecute }.execute(); //end AsyncTask } 我看到了run-multiple-asynctasks的答案,但我不知道如何使用它。 如何在AsyncTask中实现以下代码: @TargetApi(Build.VERSION_CODES.HONEYCOMB) // API 11 void startMyTask(AsyncTask asyncTask) […]

方向更改时,活动会继续重新启动

当屏幕旋转或用户在手机上滑动键盘时,如何防止活动重启? 这可能吗? 有工作吗? 所有相关答案都表示赞赏。

通过绑定服务从服务到活动进行通信

我已按照本教程将活动绑定到我的服务。 http://developer.android.com/guide/components/bound-services.html 我可以调用服务函数,但是如果我想要更改我的一些文本视图或禁用某些切换按钮,因为在服务(以及服务)上完成了工作。 有没有一个容易的方法来做到这一点?