Android 注册活动';s事件
有没有办法注册活动的活动?我对onStart/onStop活动特别感兴趣,我不想为此在活动中添加特殊操作。从其他活动的生命周期中获取事件的一种方法是将您的类注册为Android 注册活动';s事件,android,android-activity,android-event,Android,Android Activity,Android Event,有没有办法注册活动的活动?我对onStart/onStop活动特别感兴趣,我不想为此在活动中添加特殊操作。从其他活动的生命周期中获取事件的一种方法是将您的类注册为应用程序。ActivityLifecycleCallbacks主应用程序实例,并为您感兴趣的活动过滤事件 这是一个简短的示例(您可能希望注册来自MainActivity.onCreate以外的另一个方法/类的回调,否则您将错过该消息;),并且您可能不希望存在依赖关系) 关于要监视的活动: public class MainActivit
应用程序。ActivityLifecycleCallbacks
主应用程序
实例,并为您感兴趣的活动
过滤事件
这是一个简短的示例(您可能希望注册来自MainActivity.onCreate
以外的另一个方法/类的回调,否则您将错过该消息;),并且您可能不希望存在依赖关系)
关于要监视的活动:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Register a spy for this activity
getApplication().registerActivityLifecycleCallbacks(new ActivitySpy(this));
}
}
然后间谍代码看起来像:
public class ActivitySpy implements ActivityLifecycleCallbacks {
private final Activity mActivity;
public ActivitySpy(Activity activity) {
mActivity = activity;
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if (mActivity == activity)
Log.i("SPY", "Activity Created");
}
@Override
public void onActivityDestroyed(Activity activity) {
if (mActivity == activity)
Log.i("SPY", "Activity Destroyed");
}
// (...) Other overrides
}
如果您有要遵循的活动的引用,也可以从其他地方注册间谍
我希望这有帮助:)
编辑:我忘了提到,这只适用于API级别14及以上的。从其他活动的生命周期中获取事件的一种方法是将类注册为
应用程序。ActivityLifecycle使用主应用程序实例调用,并为您感兴趣的活动筛选事件
这是一个简短的示例(您可能希望注册来自MainActivity.onCreate
以外的另一个方法/类的回调,否则您将错过该消息;),并且您可能不希望存在依赖关系)
关于要监视的活动:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Register a spy for this activity
getApplication().registerActivityLifecycleCallbacks(new ActivitySpy(this));
}
}
然后间谍代码看起来像:
public class ActivitySpy implements ActivityLifecycleCallbacks {
private final Activity mActivity;
public ActivitySpy(Activity activity) {
mActivity = activity;
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if (mActivity == activity)
Log.i("SPY", "Activity Created");
}
@Override
public void onActivityDestroyed(Activity activity) {
if (mActivity == activity)
Log.i("SPY", "Activity Destroyed");
}
// (...) Other overrides
}
如果您有要遵循的活动的引用,也可以从其他地方注册间谍
我希望这有帮助:)
编辑:我忘了提到,这只适用于API级别14及以上的。你是说来自另一个类吗?我想是的,我问了一个愚蠢的问题:)让我检查一下……我正在考虑registerComponentCallbacks(回调)但这并不是你真正需要的…你是说来自另一个类吗?我想是的,这是我提出的一个愚蠢的问题:)让我检查一下…我在考虑注册组件回调(callback),但这不是你真正需要的。。。