我知道当屏幕方向改变时,调用当前活动onDestroy(),然后调用onCreate()以有效地重新创建活动.我需要知道如何以编程方式判断应用程序是否已退出,或者是否只是更改了方向.
一种方法是让前一个活动在调用其onResume()方法时通知我,这将让我知道用户按下了后退按钮并且方向没有被更改.
PS我正在寻找一种比听取后面硬件按钮点击更优雅的解决方案.
这是我想要做的:
我有两个选项卡,当第一次输入活动或用户离开活动并且现在正在输入活动时,会根据某些标准显示某个选项卡.
当方向改变时,我需要保持在同一个选项卡上.
我无法让我的cron作业执行.
建立:
Django - 1.9
Elastic beanstalk - 运行Python 3.4的64位Amazon Linux 2016.03 v2.1.3
到目前为止,我已尝试过几种方法:
使用cron.yaml文件:没有碰到其他任何东西 - 只是将cron.yaml文件添加到我的项目根文件夹
version: 1
cron:
- name: "test"
url: "http://website.com/workers/test"
schedule: "*/10 * * * *"
Run Code Online (Sandbox Code Playgroud)使用容器命令和单独的cron.txt文件:
在我的.ebextensions/development.config文件中添加了这一行
05_some_cron:
command: "cat .ebextensions/crontab.txt > /etc/cron.d/crontab && chmod 644 /etc/cron.d/crontab"
leader_only: true
Run Code Online (Sandbox Code Playgroud)
在.ebextensions/crontab.txt中
*/10 * * * * source /opt/python/run/venv/bin/activate && python mysite/manage.py test
Run Code Online (Sandbox Code Playgroud)
该应用程序在两种情况下都能成功部署.
source /opt/python/run/venv/bin/activate && python mysite/manage.py test为管理命令会在部署时运行一次正确的脚本.日志不会在该URL上显示任何GETS.
我究竟做错了什么?我是否错过了流程的一些步骤或EBS上的一些设置步骤?
另外,为EBS托管的django应用程序运行cron作业的最佳方法是什么? - django apps可以在命令行中运行管理命令,如尝试2中所示,也可以通过扩展GET或POST URL来进行尝试1.
最近,当我尝试使用AlarmManager计划将来运行的活动时,我注意到了奇怪的行为.查看下面的代码,第一个活动在20秒内启动,而第二个活动不是在40秒内启动,而是在60秒后启动.任何人都可以解释为什么第二个意图没有安排调用第二个活动而不是第三个意图.这是否意味着我只能在AlarmManager中只有一个活动意图.
//pending intent for morning
Intent myIntent1 = new Intent(this, Activity1.class);
pendingIntent1 = PendingIntent.getActivity(this, 0, myIntent1, 0);
AlarmManager alarmManager1 = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar1 = Calendar.getInstance();
//calendar1.set(Calendar.YEAR, Calendar.MONTH + 1, Calendar.DAY_OF_MONTH, morningTime, 0, 0);
calendar1.setTimeInMillis(System.currentTimeMillis());
calendar1.add(Calendar.SECOND, 20);
alarmManager1.set(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), pendingIntent1);
//pending intent for noon
Intent myIntent2 = new Intent(this, Activity2.class);
pendingIntent2 = PendingIntent.getActivity(this, 0, myIntent2, 0);
AlarmManager alarmManager2 = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar2 = Calendar.getInstance();
//calendar2.set(Calendar.YEAR, Calendar.MONTH + 1, Calendar.DAY_OF_MONTH, noonTime, 0, 0);
calendar2.setTimeInMillis(System.currentTimeMillis());
calendar2.add(Calendar.SECOND, 40);
alarmManager2.set(AlarmManager.RTC_WAKEUP, calendar2.getTimeInMillis(), pendingIntent2);
//pending intent for …Run Code Online (Sandbox Code Playgroud) android alarmmanager android-intent android-calendar android-pendingintent