2010-02-05 3 views
1

사실이 질문은 원격 서버의 데이터가 필요한 위젯에 적용됩니다.Android 앱의 Facebook 용 홈 스크린 위젯은 어떻게 작동합니까?

대답은 순수한 추측 될,하지만 어떻게 당신은 위젯이 데이터를 얻을 생각하십니까? 잘 모르는 사람들을 위해 위젯은 친구의 최신 상태 업데이트 기록을 보여줍니다. 직접 배경, 설문 조사 서버에서 실행중인 일부 서비스에서

  • 위젯 잡고 데이터
  • 어떻게 든

    1. 위젯 폴링 API : 내가 생각할 수있는

      일부 답변 페이스 북은 내가 위젯은 어떻게 든 사용자가 화면을 사용하고을 잡고 것을 감지

    2. 존재라고 생각하지 않는다 안드로이드에 푸시를 구현 수요
  • 답변

    2

    나는 # 1, # 2를 말할 것입니다. jleedev가 대답 한 이유 때문에 # 2가 가장 가능성이 높습니다. 당신이 브로드 캐스트 리시버 인의 AppWidgetProvider를 확장 앱 위젯을 구현하는

    참고. 이것은 백그라운드에서 실행되는 클래스이며 RemoteViews를 통해 스크린 위젯에 대한 업데이트를 푸시합니다. 홈 화면에서보고있는 내용은 실제로 실행중인 Activity가 아니라 특별한 BroadcastReceiver를 통해 주기적으로 업데이트되는 매우 정적 인보기입니다. 모든 홈 화면 응용 프로그램 위젯 코드를 백그라운드에서 실행하므로 # 1과 # 2 사이에는 큰 차이가 없음을 보여주기 위해이 모든 것을 말합니다.

    은 또한 당신은 정말로 # 4 수 없습니다. 불행히도 앱 위젯이 화면에 나타나면이를 감지 할 수 없습니다. 현재 할 수있는 최선의 방법은 앱 위젯을 업데이트하는 알람을 예약하고, 휴대 전화가 잠자기 상태 일 때 알람을 계속 울리는 플래그를 사용하는 것입니다.

    +0

    감사합니다. 특히 경보 팁이 필요합니다. 배터리 수명에 조금 걱정이됩니다. 귀하의 경험에 따르면 폴링이 배터리 수명에 어떻게 영향을 주는지 어떻게 생각하십니까? –

    0

    내가 쓴 위젯에 16,데이터는 정기적으로 인터넷에서 데이터를 끌어와 위젯에 밀어 서비스를 실행합니다. 그것은 잘 작동하는 것 같습니다.

    +0

    얼마나 자주 서비스를 설문 조사합니까? 기기가 켜져 있고 위젯이 홈 화면에있는 한 계속 실행됩니까? 이것이 배터리 수명에 어떤 영향을 주었습니까? 모든 질문에 사과드립니다. –

    +0

    폴링 빈도는 작은 설정 활동에서 구성 할 수 있습니다. 예, 위젯이 홈 화면에있는 한 계속 실행됩니다. 나는 대개 거의 매시간 업데이트 속도를 유지하기 때문에 배터리 수명에 나쁜 영향을주지는 못했지만 사용자에게 옵션을 제공하는 것이 실제로이를 처리하는 가장 좋은 방법입니다. – CaseyB

    0

    나는 # 2를 가정한다. 액티비티와 위젯은 동일한 컨텐트를 표시해야하므로 단일 서비스에서 데이터를 다운로드하고 캐시하는 것이 좋습니다. 위젯은 특정 간격으로 defined to update이지만 서비스가 데이터를 다운로드하는 빈도와 반드시 동일 할 필요는 없습니다. 정기적으로 새로 고침을하는 대부분의 앱에는 새로 고침 빈도를 제어 할 수있는 설정이 있으며 서비스의 설정이 될 것이라고 상상합니다.

    +0

    android : updatePeriodMillis = "0"을 정의한 다음 알람을 사용하여 위젯을 대신 업데이트 할 수 있으므로 사용자가 설명하는 설정을 통해 업데이트 빈도를 수정할 수 있습니다. –

    1

    Android SDK documentation refers부터 까지 간단한 위키 피 디아 AppWidget. 이것은 주기적으로 인터넷에서 데이터를 가져와 다시 위젯으로 푸시하는 서비스를 실행합니다. 전체 소스 코드는 available입니다.

    문서 says

    ( 웹 요청을 수행 아마 동안) 여러분의 App 위젯 설정 과정이 몇 초가 걸릴 수 있으며 이 은 에서 서비스를 시작 고려 프로세스가 계속 필요한 경우 않는다면, onUpdated() 메소드 ... 번을 한 시간에 두 번 이상 업데이트하지 않으면이 은 배터리 수명에 큰 문제가되지 않을 가능성이 있습니다 ( ).

    관련 문제