Как включить bump sdk, но отключить его запуск
Используя пример приложения, представленного в загрузке Android, я хотел бы использовать api.disableBumping() в методе onCreate(), чтобы добавить широковещательный приемник, но отключить бампинг до дальнейшего уведомления. Приложение продолжает сбой на меня.
Есть указатели?
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
bindService(new Intent(IBumpAPI.class.getName()),
connection, Context.BIND_AUTO_CREATE);
IntentFilter filter = new IntentFilter();
filter.addAction(BumpAPIIntents.CHANNEL_CONFIRMED);
filter.addAction(BumpAPIIntents.DATA_RECEIVED);
filter.addAction(BumpAPIIntents.NOT_MATCHED);
filter.addAction(BumpAPIIntents.MATCHED);
filter.addAction(BumpAPIIntents.CONNECTED);
registerReceiver(receiver, filter);
try {
api.disableBumping();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
отладочная информация
Thread [<1> main] (Suspended (exception RuntimeException))
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1816
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1837
ActivityThread.access$1500(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 132
ActivityThread$H.handleMessage(Message) line: 1033
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 143
ActivityThread.main(String[]) line: 4196
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 839
ZygoteInit.main(String[]) line: 597
NativeStart.main(String[]) line: not available [native method]
1 ответ
Решение
В строках ниже я объясняю, как работает логика Bump,
При звонке
bindService(new Intent(IBumpAPI.class.getName()), connection, Context.BIND_AUTO_CREATE);
вызывается onServiceConnected, который затем можно вызвать
api = IBumpAPI.Stub.asInterface(binder);
try { api.configure("YOUR_API_KEY", "Bump User"); }
catch (RemoteException e) { }
Затем вы ждете, пока не будет получено сообщение CONNECTED, с этого момента и далее вам решать, когда вызывать api.enableBumping() или api.disableBumping().
Примечание. Если ваше соединение отключено при вызове api.configure(), будет выдано удаленное исключение.