Android intent GDK-从live card重新启动应用程序

Android intent GDK-从live card重新启动应用程序,android-intent,android-service,google-gdk,Android Intent,Android Service,Google Gdk,我想在用户使用完Live卡后重新启动应用程序。因此,我在live card action中有一个菜单项,该菜单项将返回应用程序。然而,我遇到了一个非常奇怪的问题。用户返回应用程序并从应用程序中重新启动新的live card后,live card操作(待定意图)会因某种原因而更改。它启动了一个父活动,如果我刷出该活动(关闭活动),我将看到我应该看到的live card,因为尽管关闭这些活动不会调用unpublished()。现在,现场卡操作(待定意图)正确显示了!?有人知道发生了什么吗?我很困惑

我想在用户使用完Live卡后重新启动应用程序。因此,我在live card action中有一个菜单项,该菜单项将返回应用程序。然而,我遇到了一个非常奇怪的问题。用户返回应用程序并从应用程序中重新启动新的live card后,live card操作(待定意图)会因某种原因而更改。它启动了一个父活动,如果我刷出该活动(关闭活动),我将看到我应该看到的live card,因为尽管关闭这些活动不会调用unpublished()。现在,现场卡操作(待定意图)正确显示了!?有人知道发生了什么吗?我很困惑

这就是我如何从一个服务(SomeService.java)发布我的live card

这就是我尝试将其重新启动到应用程序(drawermenualactivity.java)的方式


我终于发现了问题所在。我销毁(删除回调并取消发布live card)我的live card的方式是错误的。这是正确的做法

public void onDestroy() {
    if (mLiveCard != null) {
        mLiveCard.unpublish();
        mLiveCard.getSurfaceHolder().removeCallback(mDrawer);
        mLiveCard = null;
    }
    super.onDestroy();
}
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection.
        Intent intent;

        switch (item.getItemId()) {
        case R.id.menuitem_return_to_app:
            intent = new Intent(this, MainActivity.class);
            startActivity(intent);

            mCurrSelectedAction = RecordMenuAction.RETURN;
            bindService(new Intent(this, SomeService.class), sendActionConnection, 0);
            stopService(new Intent(this, SomeService.class));
            return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }
public void onDestroy() {
    if (mLiveCard != null) {
        mLiveCard.unpublish();
        mLiveCard.getSurfaceHolder().removeCallback(mDrawer);
        mLiveCard = null;
    }
    super.onDestroy();
}