我试图在OSGI捆绑包中显示Toast消息,该捆绑包显然使用了Android API。toast需要一个应用程序上下文,所以我想先在捆绑包中创建一个活动。这是我的活动课,上面有祝酒词:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this.getApplicationContext(), "This is OSGI Bundle", Toast.LENGTH_SHORT).show();
}
}
现在,我想从Bundle Activator类中的start()方法开始上面的活动。下面是这个级别:
public class Activator implements BundleActivator {
private static BundleContext context;
static BundleContext getContext() {
return context;
}
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
//I WOULD LIKE TO START THE ACTIVITY HERE TO DISPLAY THE TOAST MESSAGE
}
public void stop(BundleContext bundleContext) throws Exception {
Activator.context = null;
}
}
我怎样才能做到这一点?我所知道的开始一项活动的唯一方法是当你在另一项活动中时,比如这里,但我的情况并非如此。有人能帮忙吗?非常感谢。
我认为我的主题会给你带来回应,即使不是完美的。你也可以检查FelixDroid,它使用了其他项目中看到的不同方法。然而,我渴望一个更好的解决方案。去看看我是否能找到或写一个ContextWrapper来填补这个账单。
Android对OSGi捆绑包的完全支持