我正在设计一个Android应用程序,需要执行以下步骤:
同步过程第一次运行时,可能需要10-20分钟.在初始同步之后,将传输和存储的数据更少,我希望该过程需要1-2分钟或更短时间.
我一直在阅读有关Android的AsyncTask各种内容以及使用服务的各种示例...但我并不完全理解选择一种设计而不是另一种设计的设计考虑和权衡.我目前使用AsyncTask将我的演示项目删除.观看(大部分)开发Android REST客户端应用程序之后:http:   //code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html#我对此处描述的设计模式感到困惑感觉过于复杂,也许是因为我只是"不明白".
我来自java,spring,web和桌面应用程序背景.对手持设备进行思考和设计对我来说是一个新手.(当屏幕布局发生变化时会发生什么?当我正在运行同步时手机响铃会发生什么?)如果初始同步IS将是一个如此长时间运行的过程,请退回2步,是否有更好的方法我要考虑问题 - >解决方案,用户体验,用户对手机上运行的应用程序的期望?
很想听听那些已经与这些问题搏斗的更有经验的Android开发者.
android background-process android-asynctask android-intentservice
有一个问题 - 我的主要活动启动服务然后关闭.当应用程序下次启动时,应用程序应该引用此服务并将其停止.但我不知道如何获得对正在运行的服务的引用.拜托,我希望你能帮助我.谢谢.
问题:
 
如何管理(连接,读取,写入,断开)通过配置更改而持续存在的蓝牙连接?
首选使用ActionBarSherlock与设备版本2.2"Froyo"兼容的解决方案.
问题...
既BluetoothDevice不能BluetoothSocket也不能保留onSaveState.  
为了保持我的应用程序响应,12秒阻止调用BluetoothSocket.connect()必须在单独的线程上进行.启动a Runnable是线程长任务的推荐方法,但是尝试恢复配置更改是一场噩梦.官方文档指出了三种不同的解决方案.
使用getLastNonConfigurationInstance(),已被弃用(严重?!).
设置android:configChanges="keyboardHidden|orientation"类似于BluetoothChat示例.但是,这并未考虑所有类型的配置更改.
取消并重新启动任务,例如货架示例.在这种情况下,这可能会浪费另外12秒.
更新1
进一步的研究使我得到了asyncTaskLoader,但似乎这只能在完成时更新UI,并且无法提供更新.
BluetoothHDP示例使用服务.服务似乎侧重于进程间通信以及持续超出活动生命周期的需要.我不需要这些功能.
更新2
正如鲁本所指出的,Fragment.setRetainInstance(bool)已经取代了被弃用的getLastNonConfigurationInstance().在这一点上,似乎最好的选择是使用持久的非UI片段setRetainInstance(true).  
我正在开发的应用程序中实现Paho MQTT Android服务.在测试了Paho提供的示例应用程序之后,我发现有一些事情我想改变.
https://eclipse.org/paho/clients/android/
应用程序完全关闭后,应用程序服务似乎会关闭.我希望即使在应用程序关闭后,如果有更多消息进入,我也会保持服务运行.我也在寻找一种方法,一旦收到新消息,就可以将应用程序打开到特定的活动.
这是在消息到达时调用的回调之一,我尝试实现一个简单的startActivity来打开一个特定的活动但是如果应用程序关闭/不再运行它就不起作用.
如果有人使用过PAHO MQTT Android服务,是否有一种特定的方法可以在应用程序关闭时阻止服务停止,如何在消息到达时重新打开应用程序?
    /**
   * @see org.eclipse.paho.client.mqttv3.MqttCallback#messageArrived(java.lang.String,
   *      org.eclipse.paho.client.mqttv3.MqttMessage)
   */
  @Override
  public void messageArrived(String topic, MqttMessage message) throws Exception {
    // Get connection object associated with this object
    Connection c = Connections.getInstance(context).getConnection(clientHandle);
    // create arguments to format message arrived notifcation string
    String[] args = new String[2];
    args[0] = new String(message.getPayload());
    args[1] = topic + ";qos:" + message.getQos() + ";retained:" + message.isRetained();
    // get the string from strings.xml and format
    String messageString = …我可以找到几个如何构建服务的示例,但是我很难找到如何在Activity和Service之间发送消息的工作示例.根据我的发现,我认为我的选择是使用Intents,AIDL,或者根据这个问题使用服务对象本身.
就我而言,我的活动是唯一可以访问该服务的活动,因此本地服务就可以.当活动打开时,我希望看到来自服务的一些状态消息,这些消息将以高达20 Hz的频率进入.这些通信方法每秒支持的消息数量是否有限制?基本上,哪种方法最适合我的情况?
谢谢.
我有一个扩展AccessibilityService的类,并且在发生某些事件时会启动活动。
问题在于活动结束时,应将数据发送回“ AccessibilityService”。有谁知道如何做到这一点?
例:
public class MyAccessibilityService extends AccessibilityService {
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        if (event.getEventType()==AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED){
                Intent intent=new Intent(getApplicationContext(),DialogActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                // String resul=set result When Activity is closed
        }
    }
提前致谢!