android - 如何知道 Google Glass TimelineManager LiveCard 恢复了

标签 android android-service google-glass google-gdk

我正在使用 Service 在 Google Glass 中开发一个简单的 hello world 应用程序。在我的应用程序中,我使用 TimelineManager 来显示 LiveCard。我想在应用对用户可见时调用 http 调用(我的意思是当用户从其他应用滚动到我们的应用时)。

我知道如果我们使用 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;
    }
}

最佳答案

动态卡片不提供精确的生命周期方法,就像 Activity 那样让您知道用户何时滚动到或离开卡片。

如果您想查看此功能,请在我们的 issue tracker 上发布描述您的用例的功能请求。 .

关于android - 如何知道 Google Glass TimelineManager LiveCard 恢复了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473065/

相关文章:

android - 最小化 Android GLSurfaceView 延迟

Android Linux系统调用列表

android - 如何增加 Seek 栏值

google-mirror-api - 通过屏幕共享演示玻璃器皿

java - 传入短信内容

android - 允许在调用 stopForeground(false) 后取消通知

java - Android 服务 ("startService & stopService") 和播放/停止按钮合二为一

android - 如何检查服务中的 Internet 连接以及一旦 Internet 启动服务就应该开始运行

ios - 我的APP想要从短信收件箱获取消息,该怎么做

google-glass - 如何禁用 Glass 上的 WiFi 进行测试?