2017-10-28 5 views
0

신청이 있습니다. 나는 다른 응용 프로그램에서 "공유"를 탭하면 나타나길 원합니다. 그런 다음받은 데이터를 처리하고 발신자 응용 프로그램으로 돌아 가기를 원합니다.intent-filter를 처리 한 후 뒤로 이동

예. 나는 페이스 북의 게시물을 공유하고있다 :
는 1) 내 애플
2) 정보는
3) 포스트 FB 돌려줍니다 dB로 저장 열립니다

어떻게 FB 게시물이 수익을 달성 할 수있다?

callingActivity을 참조하려고했으나 null입니다.

텐트 필터 :

<intent-filter android:label="@string/app_name"> 
      <action android:name="android.intent.action.SEND"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <data android:mimeType="*/*"/> 
</intent-filter> 

활동 : 당신이 다음 앱에 공유 할 수 있도록 현재의 응용 프로그램 뒤에 활성화됩니다에서 공유하고 무엇이든 응용 프로그램

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 

    val intent = intent 
    val action = intent.action 
    val type = intent.type 


    if (intent.getStringExtra(Intent.EXTRA_TEXT) != null) { 

     // do some processing 

     // goes recursively 
     startActivity(intent) 
    } 

} 
+0

현재 코드를 게시하여 얼마나 멀리 있는지 확인할 수 있습니까? 앱에서 데이터를 가져 왔지만 처리하지 못했거나 앱에 절대 도달하지 못한 데이터가 있습니까? – SRoseDev88

+0

@ SRoseDev88, 나는 질문을 업데이 트했지만 많이 가지고 있지 않다 문제는 데이터를 처리 한 후 FB 응용 프로그램을 다시 열어야한다는 것입니다. –

답변

0

은 그만 당신의 앱은 finish()을 사용합니다. 나는 빠른 테스트를했고이 접근법을 사용하여 두 개의 앱에서 공유 할 수있었습니다. 앱이 깜박이면 사용자는 데이터베이스 쓰기가 완료된 후 공유 한 앱에 다시 방문합니다. 나는 그것이 제대로 통과하고 크롬에서 링크를 볼 수 있는지 확인하기 위해 의도를 기록했습니다 (예로서).

if (intent.getStringExtra(Intent.EXTRA_TEXT) != null) { 

     // do some processing 
     Log.d("Extras", intent.getStringExtra(Intent.EXTRA_TEXT)) 

     // goes recursively 
     finish() 
    } 
+0

처리가 오래 걸리는 경우? 백그라운드에서 실행할 수있는 방법이 있습니까? 또는 내 응용 프로그램을 최소화하여 호출 응용 프로그램이 표시되도록 –

+0

프로세스를 백그라운드로 실행할 수있는 서비스로 전환 할 수 있습니다. 인앱 코드는 데이터를 파싱하여 서비스에 전달할 수 있습니다. 데이터가 전달되면 응용 프로그램을 닫고 서비스가 백그라운드에서 작업을 수행 할 수 있습니다. – SRoseDev88