попробуй это, надеюсь, это поможет:
@Override
public void onPause() {
myWebView.onPause();
myWebView.pauseTimers();
super.onPause();
}
@Override
public void onResume() {
super.onResume();
myWebView.resumeTimers();
myWebView.onResume();
}
@Override
protected void onDestroy() {
myWebView.destroy();
myWebView = null;
super.onDestroy();
}
public class EventThrower
{
public delegate void EventHandler(object sender, EventArgs args) ;
public event EventHandler ThrowEvent = delegate{};
public void SomethingHappened() => ThrowEvent(this, new EventArgs());
}
public class EventSubscriber
{
private EventThrower _Thrower;
public EventSubscriber()
{
_Thrower = new EventThrower();
// using lambda expression..could use method like other answers on here
_Thrower.ThrowEvent += (sender, args) => { DoSomething(); };
}
private void DoSomething()
{
// Handle event.....
}
}
Предполагая, что ваше событие обрабатывается EventHandler ,
Внутри вашей формы:
private void SubscribeToEvent(OtherClass theInstance) => theInstance.SomeEvent += this.MyEventHandler;
private void MyEventHandler(object sender, EventArgs args)
{
// Do something on the event
}
Вы просто подписываетесь на событие на другой класс так же, как и для события в вашей форме. Следует помнить о трех важных вещах:
Вам необходимо убедиться, что ваш метод (обработчик событий) имеет соответствующее объявление, соответствующее типу делегата события в другом классе.
Событие в другом классе необходимо чтобы быть видимым вам (например, общедоступным или внутренним).
Подпишитесь на действительный экземпляр класса, а не на сам класс.