标签: application-lifecycle

Android:与onPause等效的任务或应用程序

我的应用程序使用远程服务播放音频.我这样做是为了没有活动拥有音频的播放 - 用户可以触发一些音频从一个Activity播放,音频将在他们浏览应用程序时继续播放.但是,当用户通过退出,锁定显示器或点击主页"卸载"应用程序时,我想告诉服务暂停或停止播放音频.当应用程序是单个活动时,我在onPause中执行此操作.所以,我想我实际上是在应用程序/任务级别寻找"onPause".这样的事情存在吗?如果没有,那么获得通知的"最佳实践"方式是什么,用户要么完全支持该任务,要么完全退出或者回家?

android application-lifecycle aidl

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

合理期望支持新的操作系统?

我的公司有一个最初为Windows XP开发的桌面应用程序.原来的程序员已经被开除(开除极端偏见我可以补充).我已经修复了不同的应用程序,但总体上试图避免它,它是一个烂摊子,唯一真正的解决方法是完全重写它,这可能需要一年.

我们一直试图"忘记"这个应用程序,而是引导客户端使用我们的Web版本,这个版本更新,更易于维护,更容易扩展,并且更容易支持.大多数客户都同意,网络版本更好.

但是,我们有一个客户坚持使用桌面应用程序.该应用程序需要一些胶带才能在Vista上运行,但现在在Windows 7上完全中断.我甚至不确定所有修复程序是否能让它在Win7上运行(目前的时间估计值为"奇迹")但是在安装RELEASE构建并从Visual Studio运行DEBUG构建之后,应用程序几乎在每个用户操作上都有错误,而且从高级别测试运行中我可以看到,它们都不相关.

由于Windows 7在开发此应用程序时不存在,我的公司是否真的希望能够进行所有必需的更改,使其像在XP上一样"顺畅"运行?

编辑:管理层想知道"支持新操作系统的行业规范是什么?" 因为我对那个也没有真正的答案.

application-lifecycle

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

立即退出整个应用程序

我在我的应用程序中使用了这里的代码,当我点击"取消"选项时,应用程序只是最小化,当我长按住主页按钮并选择应用程序时.它显示相同的屏幕而不是闪屏或通常的方式应用程序启动 - 所以我假设它只是带我到主屏幕.我正在寻找一种可以完全关闭主要活动的方法.

我尝试了以下方法,每次都崩溃了:

  1. finish();
  2. mainactivity.class.finish();
  3. 打开一个有意图的意图 systemexit()
  4. setresult() 在另一项活动中.

android application-lifecycle

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

Android应用程序生命周期和singelton

我们大多数人都熟悉这种模式:

   public class MySingeltone {

    public String mSomeReferenceTypeData;
    public int mSomeValueTypeData;

    private static MySingeltone mInstance;

    private MySingeltone() {

    }

    public static MySingeltone getInstance() {
        if (mInstance == null) {
            mInstance = new MySingeltone();
        }

        return mInstance;
    }
 }
Run Code Online (Sandbox Code Playgroud)

我的问题是我最近发现mInstance在使用他的活动被销毁之后,或者当整个应用程序假设为子句时,不等于null,例如:

public class SomeActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MySingeltone mySingeltone = MySingeltone.getInstance();
        mySingeltone.mSomeReferenceTypeData = "some value";
    }
}
Run Code Online (Sandbox Code Playgroud)

在关闭整个应用程序运行活动(比如说...之后10秒)下次启动"SomeActivity"时,mInstance仍保持相同的引用,并且在其字段上具有相同的值.

它为什么会发生?

我错过了什么?

当android垃圾收集静态成员属于应用程序?

singleton android static-members application-lifecycle

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

为什么即使在WPF应用程序生命周期中处理程序是async void,Application.Exit事件仍然有效?

我有一个问题如何等待WPF生命周期方法中的异步方法(使用Caliburn-Micro框架)(例如OnActivate,OnInitialized,OnExit - 它直接绑定到Application.Exit事件)

这篇文章准确地描述了我的问题:http://mark.mymonster.nl/2013/07/10/donrsquot-make-your-application-lifetime-events-async-void(现在我正在考虑使用本文中的解决方案) ,但第一眼看起来有点矫枉过正)

我需要在OnExit hanlder中等待一些异步方法,所以我把它作为异步.它有效.的种类.我不明白为什么?,但在调用Application.Exit事件时,它会以某种方式等待,直到该方法完成,即使处理程序是异步void.你能解释一下这有可能吗?这样安全吗?还是只是自信?Async void应仅用于顶级事件,是这种情况吗?

我查看了System的代码.绑定看起来像这样:

public event EventHandler Exit
{
  add
  {
    XcpImports.CheckThread();
    this.AddEventListener(DependencyProperty.RegisterCoreProperty(20053U, (Type) null), (Delegate) value);
  }
  remove
  {
    XcpImports.CheckThread();
    this.RemoveEventListener(DependencyProperty.RegisterCoreProperty(20053U, (Type) null), (Delegate) value);
  }
}
Run Code Online (Sandbox Code Playgroud)

这真是神秘,我无法通过调用此事件来了解.net框架中真正发生的事情.

同样奇怪的是,当我不使用ConfigureAwait(false)时,在处理程序中调用等待Task.Delay(1)会导致DeadLock .所以我想说有一些地方.Wait()深入使用.net代码.

注意:当我按照预期生成OnActivate,OnInitialized处理程序async时,页面不会等到处理程序完成.

谢谢你的回答!

.net c# wpf asynchronous application-lifecycle

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

Android应用程序onCreate,何时调用

我仍然没有得到Application(不是Activity)生命周期的方式,

在启动GUI时调用Application的onCreate方法非常简单.

但是,它是在以下任何一种情况下开始的吗?

  • App Widget可见
  • 广播接收器收到的东西
  • 推送通知到达设备并显示消息
  • 应用关闭后,点击推送通知
  • 服务已开始

申请流程能保持多久?

现在我有一个问题,我看到应用程序(进程)在关闭/终止应用程序后重新启动.然而,没有任何实现,所以有这种行为.

android application-lifecycle android-service android-lifecycle

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

如何在Android中处理涉及套接字的活动生命周期?

  • 我有一个Android活动,反过来启动一个线程.
  • 在线程中我打开一个持久的TCP套接字连接.
  • 当套接字连接到服务器时,下载动态数据.
  • 在收到数据时,线程使用Handler-class向活动发送消息.

现在,如果用户碰巧从纵向模式切换到横向模式,则活动将获得onDestroy调用.此时我关闭套接字并停止线程.

当Android切换横向模式时,它再次调用onCreate,我必须重新连接套接字.此外,所接收的活动的所有数据都需要再次下载,因为服务器无法知道之前发送的内容,即没有"恢复"功能.

因此问题在于,当横向模式改变时,存在大量重新发送的数据.

我有什么选择?

  • 我应该创建一个服务来处理服务器的套接字流量,因此我总是获得服务器在服务中发送的所有数据.
  • 或者我应该一起禁用横向模式吗?
  • 或者我最好的选择是重写我的服务器,这是一项非常大的工作:-)

欢迎所有输入:-)

/亨利克

sockets android application-lifecycle

3
推荐指数
1
解决办法
2775
查看次数

3
推荐指数
1
解决办法
6895
查看次数

用于将Rails应用程序从开发应用到生产的典型工具是什么?

作为一名经验丰富的.NET开发人员,我对学习Ruby on Rails开发过程感兴趣.我有ASP.NET WebForms和MVC的经验,我也使用过PHP.我已经完成了一些基本的RoR教程,并且能够让它们正常工作.

这个问题更具体地涉及这种类型开发的工具和开发过程,因为它与我习惯的不同.除了Rake之外,用于管理开发生命周期和将网站投入生产的典型工具(开发,测试,部署)是什么?对于我的基本思维过程与开发.NET有什么需要改变的吗?

.net ruby-on-rails application-lifecycle

3
推荐指数
1
解决办法
88
查看次数

View Controller在iOS 12中响应应用程序委托通知,但在iOS 13中不响应

我有一个支持iOS 12的应用程序。我正在添加对iOS 13的支持。我有一个视图控制器,当该应用程序进入后台时,它需要执行快速操作。

在iOS 13之前,这非常简单。添加一行,例如:

NotificationCenter.default.addObserver(self, selector: #selector(didEnterBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

viewDidLoad或也许init

然后添加didEnterBackground方法:

@objc func didEnterBackground() {
    // Do my background stuff
}
Run Code Online (Sandbox Code Playgroud)

对于iOS 12及更低版本,这一切都很好。

但是现在有了iOS 13的场景支持,在iOS 13上运行时不会调用我的通知。它仍然可以在iOS 12模拟器/设备上使用。

我需要进行哪些更改?

application-lifecycle ios ios13

3
推荐指数
1
解决办法
975
查看次数