2014-01-31 2 views
1

서비스를 사용하는 Google Glass에서 간단한 hello world 응용 프로그램을 개발 중입니다. 내 응용 프로그램에서는 TimelineManager를 사용하여 LiveCard을 표시했습니다. 앱이 사용자에게 표시 될 때 http 호출을 호출하려고합니다 (사용자가 다른 앱에서 우리 앱으로 스크롤했을 때를 의미합니다).Google Glass TimelineManager LiveCard를 사용하는 방법

Activity를 사용하면 자동으로 onResume()이 호출되지만 서비스에서 처리하고 있음을 알고 있습니다.

사용자에게으로 앱을 다시 시작할 때 어떤 방법이 호출되는지 알려주세요.

public class MyGlassService extends Service { 

    private static final String TAG = "SocketService"; 
    private static final String LIVE_CARD_ID = "livecard"; 
    private TimelineManager mTimelineManager; 
    private LiveCard mLiveCard; 
    private TextToSpeech mSpeech; 
    private final IBinder mBinder = new MainBinder(); 

    private TextView txtName, txtBalance; 
    private RemoteViews remoteView; 
    private WakeLock screenLock;  


    public class MainBinder extends Binder { 
     public void sayMessage() { 
      mSpeech.speak(getString(R.string.hello_world), 
        TextToSpeech.QUEUE_FLUSH, null); 
     } 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mTimelineManager = TimelineManager.from(this); 
     mSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() { 
      @Override 
      public void onInit(int status) { 
       // do nothing 
      } 
     }); 

    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     remoteView = new RemoteViews(this.getPackageName(), R.layout.activity_main); 
     if (mLiveCard == null) { 
      mLiveCard = mTimelineManager.createLiveCard(LIVE_CARD_ID); 
      remoteView.setTextViewText(R.id.name, getString(R.string.pre_screen_msg)); 
      mLiveCard.setViews(remoteView); 

     } 
     return START_STICKY; 
    } 


    @Override 
    public void onDestroy() { 
     if (mLiveCard != null && mLiveCard.isPublished()) { 
      mLiveCard.unpublish(); 
      mLiveCard = null; 
     } 
     mSpeech.shutdown(); 

     mSpeech = null; 
     super.onDestroy(); 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return mBinder; 
    } 

    public String toHexString(byte[] data) { 
     String s = new String(data); 
     return s; 
    } 
} 

답변

2

라이브 카드는 활동과 같이 정확한 라이프 사이클 방법을 제공하지 않으므로 사용자가 스크롤 할 때 또는 이동하지 않을 때 알려줍니다.

이 기능을 보려면 issue tracker에 사용 사례를 설명하는 기능 요청을 게시하십시오.