Я пытаюсь написать приложение, которое не может быть убито пользователем или другим приложением.Я понимаю, что это идет вразрез с тем, что Android разработал для своей платформы, это скорее подтверждение концепции.План два состоит из двух приложений, app1 и app2.Когда приложение app1 запускается, оно запускает app2, а затем связывается с app2, когда app2 запускается, оно проверяет, запущено ли app1, если нет, затем запускает его и связывается с app1.Точка привязки app1 к app2 и app2 привязки к app1 заключается в том, что когда один из них будет убит, будет вызван метод, что привязка была отключена, а затем приложение может быть перезапущено.В настоящее время у меня есть приложения, запускающие друг друга, когда они запускаются, но я не могу заставить их перезапускаться, когда принудительно закрываю одно из них.
Для службы App1 у меня и app2 очень похожи:
@Override
public void onCreate()
{
this.setForeground(true);
this.startService((new Intent()
.setComponent(new ComponentName("com.app2",
"com.app2.App2Service"))));
this.bindService((new Intent()
.setComponent(new ComponentName("com.app2",
"com.app2.App2Service"))), mConnection,
BIND_DEBUG_UNBIND);
А для моего класса, реализующего ServiceConnection, у меня есть:
@Override
public void onServiceDisconnected(ComponentName name)
{
Log.d(TAG, "onServiceDisconnected:" + name.getClassName());
mContext.startService((new Intent()
.setComponent(new ComponentName("com.app2",
"com.app2.App2Service"))));
}
Я думаю, что проблема в том, что яИмеется в том, что onServiceDisconnected никогда не вызывается, когда app1 или app2 убиты.Я думаю, что это может быть связано с тем, что я неправильно привязываюсь к сервису.
W/JavaBinder( 884): ibinderForJavaObject: 0x436274a0 is not a Binder object
W/JavaBinder( 891): ibinderForJavaObject: 0x43621d30 is not a Binder object
Поэтому мой вопрос заключается в том, как я могу связать сервисы друг с другом, чтобы, когда один из них был закрыт, я получил уведомление одругой