Это очень просто.
шаги:
1.создать класс обслуживания.
2.создать класс BroadcastReceiver
3.озвонить BroadReceiver в метод обслуживания onDestroy
4.В onReceive метод класса BroadReceiver запустить сервис один раз снова.
Вот код
Файл манифеста: `
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".LauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".utilities.NotificationService"
android:enabled="true">
</service>
<receiver
android:name=".utilities.RestartService"
android:enabled="true"
android:exported="true"
android:label="RestartServiceWhenStopped"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="RestartService" />
</intent-filter>
</receiver>
</application>
`
Класс обслуживания
public class NotificationService extends Service {
public NotificationService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Intent restartService = new Intent("RestartService");
sendBroadcast(restartService);
}
}
Класс BroadcastReceiver
public class RestartService extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context,NotificationService.class));
}
}
Является ли ваша учетная запись пользователя операционной системы, в которую вы вошли как член группы ORA_DBA (windows) или группы DBA (* nix)?
Если ответ положительный, тогда Следующее, что нужно проверить, - это наличие файла ORACLE_HOME \ database \ orapwORCL.ora, который содержит пароли для всех пользователей, определенных как пользователи sysdba. Если он не существует, вам необходимо выключить базу данных и запустить утилиту orapwd:
Это определяет системный пароль как 123456 После этого вы сможете запустить базу данных и подключиться к sys / 123456 как sysdba
. Файл паролей должен существовать для аутентификации на основе пароля при входе в систему sysdba. Причина этого заключается в том, что соединения sysdba должны быть разрешены, когда база данных не работает и база данных не может аутентифицировать вас.
Ваш пример выглядит немного искаженным; для подключения к sqlplus через командную строку с пользователем sys
и паролем 123456
:
sqlplus sys/123456 as sysdba
или
sqlplus "sys/123456 as sysdba"
до Oracle 10. Если вы уже находитесь в sqlplus (как я исходя из того факта, что ваш пример начинается с SQL>), вы используете команду подключения:
SQL> connect sys/123456 as sysdba
Во всех случаях, если вы не установили переменную среды ORACLE_SID
, вам необходимо указать это после пароль, например:
sqlplus sys/123456@<mydbname> as sysdba
, где
имеет форму
, если вы используете Oracle 10 или новее, или допустимая запись из вашего файла tnsnames.ora
(находится в $ ORACLE_HOME / network / admin
) для всех версий.