0
나는 매 x 시간마다 페이스 북에서 가져온 일부 데이터를 백그라운드로 업데이트하는 주요 활동과 서비스를 가지고있다.서비스에 페이스 북 세션 전달 (SDK 3.0.1)
내가 마지막으로 (2.X에서) 새로운 SDK 3.0.1로 이동하고있어 요즘에와 나는 서비스에 페이스 북의 세션을 통과에 문제가 : 서비스 실행하는 경우
을 때 주를 액티비티가 여전히 정상적으로 동작하고 있습니다. 그렇지 않으면 내 세션이 null이므로 session == null이기 때문에 if (session.isOpened()) {...}에서 충돌합니다.
여기 내 코드입니다 :
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("ServiceUpdate", "Received start id " + startId + ": " + intent);
session = Session.getActiveSession();
startservice();
return START_STICKY;
}
private void startservice() {
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
if (session.isOpened()) {
if (isOnline()) {
Log.i("ServiceUpdate", "start timer");
update();
Log.i("ServiceUpdate", "end timer");
}
}
}, 600000, 6 * 3600000);
}
내가 SDK 2.x를 함께 할 수 사용으로 저장 acces_token와 expire_time와 세션을 초기화해야합니까?
감사합니다.
예, 내 활동이 실행되지 않아도 작동합니다. – user1345108
불행히도 내 의견을 수정해야합니다 : 내 서비스에서 작업 세션을 얻을이 방법은 있지만 내 MainActivity 세션이 닫히지 않도록 새 활성 세션이됩니다. MainActivity와 Service에서 동시에 활성화 된 세션과 열린 세션을 동시에 사용할 수 있습니까? SDK 2.x를 사용하여 가능하고 쉽게 ... 어쩌면 내가 전에했던 것처럼 access_token을 전달해야합니다 ... – user1345108
활성 세션은 Session 클래스 내에 유지되는 정적 싱글 톤 인스턴스입니다. 귀하의 유스 케이스의 경우, 나는 먼저 Session.getActiveSession이 null (서비스 및 MainActivity 모두)인지 확인한 다음, 새로운 활성 세션을 작성하십시오. –