android上的服务?

android上的服务?,android,service,android-service,Android,Service,Android Service,我已经创建了一个与服务器同步的应用程序。 我已经有了一个代码,一旦用户按下一个按钮,它就会执行同步。现在是在那里添加服务的时候了。 关于安卓上的应用程序,我有以下问题: 如果用户以前从未运行过应用程序,服务会启动吗?(即刚刚安装的) 首次启动服务的时间?我可以从主应用程序的onCreate启动它吗 如果用户在应用程序中按下“同步”按钮,我应该启动该服务,还是应该为同一服务启动不同的进程?我如何检查后台同步是否没有同时发生 我是否应该使用ASyncTask,即使服务是按以下方式启动的 startS

我已经创建了一个与服务器同步的应用程序。 我已经有了一个代码,一旦用户按下一个按钮,它就会执行同步。现在是在那里添加服务的时候了。 关于安卓上的应用程序,我有以下问题:

  • 如果用户以前从未运行过应用程序,服务会启动吗?(即刚刚安装的)
  • 首次启动服务的时间?我可以从主应用程序的
    onCreate
    启动它吗
  • 如果用户在应用程序中按下“同步”按钮,我应该启动该服务,还是应该为同一服务启动不同的进程?我如何检查后台同步是否没有同时发生
  • 我是否应该使用ASyncTask,即使服务是按以下方式启动的

    startService(新意图(这个,ServiceSync.class))


  • Android中同步数据的首选方法是提供一个
    SyncAdapter
    来执行同步。您对中所需的步骤有一个很好的总结

    你也会发现它很有用

    编辑:

    1-2-3:您可以使用管理活动中的交互和服务方法。您在提供的链接中有完整的工作示例。基本上,您在活动的
    onStart
    方法中绑定到服务,并在顶部取消绑定
    onStop

    请记住,服务在UI线程上运行,因此每个耗时的任务(如通过网络获取数据)都必须在单独的线程中完成


    4:这里不需要
    AsyncTask

    如果我不想在“Accounts&Sync”屏幕中添加帐户详细信息,并且只想在我的应用程序中显示它们,我可以使用它吗?很遗憾,您需要创建一个帐户。但是,我想不出创建帐户会伤害用户的场景。相反,你可以很好地使用android生态系统,让你的用户能够灵活地同步所需的内容。还可以将排队同步尝试的责任委托给系统,而不必自己处理。授权通过OAuth进行。不知道用户必须输入什么作为用户名和密码;)。例如,Twitter使用OAuth,您可以添加一个Twitter帐户:)。基本上,您负责实现处理身份验证令牌的代码。所以我可以实现我需要的任何授权。然而,只有少数应用程序使用这种(正确的)方法。但是这些示例现在对我来说有点复杂,所以我将把它留给我的项目的第2阶段;)。这次你能帮我做一下服务吗@mgv,我记得这件事,并且很快就会这样做-只需要再次回顾我所有的问题(不幸的是,并不是所有的问题都得到了回答)。