代码之家  ›  专栏  ›  技术社区  ›  bhups

如何检测视图的父活动是否被破坏

  •  7
  • bhups  · 技术社区  · 16 年前

    onDetachedFromWindow ,但我不确定这样做是否正确。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Thierry Roy    14 年前

    理解了onDestroy不能保证被调用,您可以在activities onDestroy方法中回调到您的视图中。

    你可以通过在布局中给它一个id并调用findViewById来获得任何视图。举个例子:

    Layout.xml(仅显示最小值)

    <LinearLayout>
      <com.example.superwidget.DropDownTouchEnabledListView
        android:id="@+id/special_list_view" />
    </LinearLayout>
    

    @Override
    void onDestroy() {
        DownTouchEnabledListView v = (DownTouchEnabledListView)findViewById(R.id.special_list_view);
        v.doCallback(with, parameters);
    }
    
        2
  •  7
  •   Édouard Mercier    13 年前

    View.onDetachedFromWindow() View.addOnAttachStateChangeListener() 方法,该方法将回调侦听器作为单个参数。

        3
  •  0
  •   aldok    6 年前

    View Context ,我用 LocalBroadcastManager 为了这个。到目前为止,我还没有遇到任何问题。

    这个 查看 destroy event filter . 这个 Activity 那就广播吧 destroy event

    // On View `setup` function
    LocalBroadcastManager.getInstance(context).registerReceiver(receiver, filter)
    
    // On Activity
    override fun onDestroy() {
        super.onDestroy()
        LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
    }
    

    别忘了注销 event filter 一旦触发销毁事件。

    presenter.destroy() // Your clean-up code here
    LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver)
    

    你可以找到更多关于