Mat*_*ert 5 android android-intent startactivityforresult
我正在开发一个应用程序,它应该将一些文本返回给启动意图的应用程序.
但启动意图的应用程序是IME /软键盘.因此,StartActivityForResult不可用,因为IME是一项服务.
我怎样才能做到这一点?
到目前为止我得到了什么:
键盘:
final Intent intent = new Intent("com.example.helloworld.GETTEXT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.putExtra("keyboard", true);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
其他应用:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle extras = getIntent().getExtras();
if (extras == null){
return;
} else {
finish();
}
}
@Override
public void finish() {
Intent data = new Intent();
data.putExtra("test", "PASSED");
setResult(RESULT_OK, data);
super.finish();
}
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以使用 ResultReceiver 来实现这一点。
ResultReceiver lReceiver = new KeyboardResultReceiver(aListener);
final Intent intent = new Intent("com.example.helloworld.GETTEXT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.putExtra(EXTRA_RESULT_RECIEVER, lReceiver);
intent.putExtra("keyboard", true);
startActivity(intent);
private static final class KeyboardResultReceiver extends ResultReceiver {
public FileUploadResultReceiver() {
}
@Override
protected void onReceiveResult(int aResultCode, Bundle aResultData) {
//Do your thing here you can also use the bundle for your data transmission
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |