У нас есть приложение, которое имеет функцию, использующую функцию общего доступа Android. Если список свойств передается из приложения Rightmove, наше приложение берет это свойство и добавляет информацию в нашу базу данных на стороне сервера. Когда приложение запускается нормально (не через общий ресурс), оно проверяет наличие обновлений при запуске.
Приложение делает то, что должно делать, как при обычном запуске, так и при запуске с помощью общего доступа из приложения Rightmove. За исключением последнего случая, он продолжает проверять наличие обновлений, которые не должны делать.
Вот метод onCreate()
, в котором находится весь соответствующий код:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent rightmove = getIntent();
String action = rightmove.getAction();
String type = rightmove.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
String rm_text = rightmove.getStringExtra(Intent.EXTRA_TEXT);
if (rm_text.startsWith("I found this property on the Rightmove")) {
String[] parts = rm_text.split("/");
String rm_code = parts[parts.length - 1];
new UpdateList().execute(rm_code);
} else {
Toast.makeText(this.getApplicationContext(), "Lets Delight only takes share information from the Rightmove app", Toast.LENGTH_LONG).show();
}
this.finish();
}
user = findViewById(R.id.user);
status = findViewById(R.id.status);
message = findViewById(R.id.message);
Button dman = findViewById(R.id.button_decision);
Button todo = findViewById(R.id.button_todo);
new Update(status).check(this);
}
Блок if
для работы с общим ресурсом заканчивается на this.finish();
, но код продолжается после этого и проверяет наличие обновлений. Поэтому он должен нарисовать интерфейс, который не требуется или используется.
Это тот случай, когда finish();
требуется некоторое время для завершения, и, пока он это делает, код продолжает выполняться или здесь происходит что-то еще? В любом случае, каков «правильный» способ обработки отправки общей информации в приложение, которое просто обрабатывает эти общие данные, не представляя пользовательский интерфейс пользователю?