我们有一个具有使用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();
结尾,但是代码在此之后继续并检查更新。因此,它必须绘制不需要或不使用的UI。
finish();
是否需要花一些时间才能完成,同时又继续执行代码还是在这里发生其他情况?无论哪种方式,处理将共享信息发送到仅处理共享数据而不向用户展示UI的应用程序的“正确”方法是什么?