在应用程序的任何 activity 中调用 onPause() 时通知
Notify when onPause() called in any activity of an application
我认为这个问题可能很简单,但我没有找到任何解决方案,
我在 Android 中有任何方法,如果 activity 中的任何一个调用 onPause()
我需要显示 Toast 消息或任何需要显示的通知类型。通常我想在 activity 调用 onPause()
时收到通知,但我需要它在一个地方,因为我可能有 15 activity 我不想将它添加到所有 activity.
ex:如果我有 activity 当 activity 中的任何一个调用 onPause
我需要得到通知,但通知代码应该在一个地方,我们不应该添加任意一行代码onPause()
是否可以做到这一点
谢谢。
创建一个 baseActivity,例如:
open class BaseActivity : AppCompatActivity() {
override fun onPause() {
super.onPause()
Toast.makeText(this, "notified", Toast.LENGTH_SHORT).show()
}
}
然后你可以在你的活动中扩展它并处理 BaseActivity 中的暂停调用
如果你的minSdkVersion
>=14,你可以使用Application.ActivityLifecycleCallbacks
:ActivityLifecycleCallbacks
您必须定义自定义 Application
class 之后您可以注册此回调:
public class MyApplication extends Application {
private class LifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(final Activity activity, final Bundle savedInstanceState) {
//nothing to do
}
@Override
public void onActivityDestroyed(final Activity activity) {
//nothing to do
}
@Override
public void onActivityPaused(final Activity activity) {
// TODO Do your stuff, e.g. show toast.
}
@Override
public void onActivityResumed(final Activity activity) {
//nothing to do
}
@Override
public void onActivitySaveInstanceState(final Activity activity, final Bundle outState) {
//nothing to do
}
@Override
public void onActivityStarted(final Activity activity) {
}
@Override
public void onActivityStopped(final Activity activity) {
}
}
private final LifecycleCallbacks callbacks;
public void onCreate() {
super.onCreate();
callbacks = new LifecycleCallbacks();
application.registerActivityLifecycleCallbacks(callbacks);
}
}
创建一个 BaseActivity,其中包含您要在所有其他活动中使用的所有方法。
然后用 BaseActivity 扩展每个 activity 来调用 onPause() 方法。
我认为这个问题可能很简单,但我没有找到任何解决方案,
我在 Android 中有任何方法,如果 activity 中的任何一个调用 onPause()
我需要显示 Toast 消息或任何需要显示的通知类型。通常我想在 activity 调用 onPause()
时收到通知,但我需要它在一个地方,因为我可能有 15 activity 我不想将它添加到所有 activity.
ex:如果我有 activity 当 activity 中的任何一个调用 onPause
我需要得到通知,但通知代码应该在一个地方,我们不应该添加任意一行代码onPause()
是否可以做到这一点
谢谢。
创建一个 baseActivity,例如:
open class BaseActivity : AppCompatActivity() {
override fun onPause() {
super.onPause()
Toast.makeText(this, "notified", Toast.LENGTH_SHORT).show()
}
}
然后你可以在你的活动中扩展它并处理 BaseActivity 中的暂停调用
如果你的minSdkVersion
>=14,你可以使用Application.ActivityLifecycleCallbacks
:ActivityLifecycleCallbacks
您必须定义自定义 Application
class 之后您可以注册此回调:
public class MyApplication extends Application {
private class LifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(final Activity activity, final Bundle savedInstanceState) {
//nothing to do
}
@Override
public void onActivityDestroyed(final Activity activity) {
//nothing to do
}
@Override
public void onActivityPaused(final Activity activity) {
// TODO Do your stuff, e.g. show toast.
}
@Override
public void onActivityResumed(final Activity activity) {
//nothing to do
}
@Override
public void onActivitySaveInstanceState(final Activity activity, final Bundle outState) {
//nothing to do
}
@Override
public void onActivityStarted(final Activity activity) {
}
@Override
public void onActivityStopped(final Activity activity) {
}
}
private final LifecycleCallbacks callbacks;
public void onCreate() {
super.onCreate();
callbacks = new LifecycleCallbacks();
application.registerActivityLifecycleCallbacks(callbacks);
}
}
创建一个 BaseActivity,其中包含您要在所有其他活动中使用的所有方法。
然后用 BaseActivity 扩展每个 activity 来调用 onPause() 方法。