小编Dus*_*ica的帖子

如何区分方向更改和离开应用程序android

我知道当屏幕方向改变时,调用当前活动onDestroy(),然后调用onCreate()以有效地重新创建活动.我需要知道如何以编程方式判断应用程序是否已退出,或者是否只是更改了方向.

一种方法是让前一个活动在调用其onResume()方法时通知我,这将让我知道用户按下了后退按钮并且方向没有被更改.

PS我正在寻找一种比听取后面硬件按钮点击更优雅的解决方案.

这是我想要做的:

我有两个选项卡,当第一次输入活动或用户离开活动并且现在正在输入活动时,会根据某些标准显示某个选项卡.

当方向改变时,我需要保持在同一个选项卡上.

lifecycle android

47
推荐指数
3
解决办法
2万
查看次数

在aws弹性豆茎上运行cron作业 - django

我无法让我的cron作业执行.

建立:

Django - 1.9

Elastic beanstalk - 运行Python 3.4的64位Amazon Linux 2016.03 v2.1.3

到目前为止,我已尝试过几种方法:

  1. 使用cron.yaml文件:没有碰到其他任何东西 - 只是将cron.yaml文件添加到我的项目根文件夹

    
    version: 1
    cron:
    - name: "test" url: "http://website.com/workers/test" schedule: "*/10 * * * *"
    Run Code Online (Sandbox Code Playgroud)
  2. 使用容器命令和单独的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)

该应用程序在两种情况下都能成功部署.

  1. 手动(在浏览器中)访问http://website.com/workers/test有预期的结果(在第一种情况下).
  2. 添加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.

django cron amazon-ec2 amazon-elastic-beanstalk

5
推荐指数
2
解决办法
1861
查看次数

使用AlarmManager将多个pendingIntent调度到同一活动

最近,当我尝试使用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

4
推荐指数
1
解决办法
3922
查看次数