我正在使用Service中的mediaprojection API制作一个录制应用程序,问题是我应该使用onActivityResult(),所以我通过非显示活动来执行此操作,但是我遇到一个问题,即未调用onActivityResult()。
我的服务电话:
TYPES: BEGIN OF alv_line,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF alv_line.
DATA alv_tab TYPE TABLE OF alv_line.
SELECT carrid, connid, cityfrom, cityto
FROM spfli
WHERE carrid = @carrid
INTO CORRESPONDING FIELDS OF TABLE @alv_tab.
IF sy-subrc <> 0.
MESSAGE e007(sabapdemos).
ENDIF.
TRY.
cl_salv_table=>factory(
IMPORTING r_salv_table = DATA(alv)
CHANGING t_table = alv_tab ).
alv->set_screen_popup( start_column = 1
end_column = 60
start_line = 1
end_line = 12 ).
alv->display( ).
CATCH cx_salv_msg.
MESSAGE 'ALV display not possible' TYPE 'I'
DISPLAY LIKE 'E'.
ENDTRY.
在活动类中:
private void openMainActivity() {
Intent mainIntent = new Intent(getContext(), MainActivity.class);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(mainIntent);
}
和清单中:
public class MyActivity extends Activity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(null);
mediaProjectionManager = (MediaProjectionManager)getContext().getSystemService(MEDIA_PROJECTION_SERVICE);
startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("Debugging" , "requestCode: "+requestCode+" , resultCode: "+resultCode+" , data: "+data);
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK) {
mediaProjection = mediaProjectionManager.getMediaProjection(resultCode, data);
this.finish();
}
}
}
我该怎么做才能调用onActivityResult()