活动内未调用onActivityResult()

时间:2019-01-08 14:00:39

标签: android-studio start-activity startactivityforresult android-mediaprojection mediaprojection

我正在使用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()

0 个答案:

没有答案