소셜 미디어 Android 애플리케이션 개발에 일반적으로 사용되는 코드 - 인형

Android 애플리케이션 개발에 일반적으로 사용되는 코드 - 인형

차례:

비디오: [렌파이 실전] - 1. 안드로이드 배포하기 2024

비디오: [렌파이 실전] - 1. 안드로이드 배포하기 2024
Anonim

"내 앱에는 브로드 캐스트 리시버가 필요합니다. 누군가 내가 방송 수신기를 코딩 할 수있는 방법을 생각 나게 할 수 있습니까? 그리고 여러분이 활동하는 동안 활동이 어떻게 결과를 돌려 주나요? 오. 어디서 그런 것들을 빨리 찾을 수 있습니까? "

안드로이드 애플리케이션 개발에 사용되는 코드 종류의 예제를 준비하는 것이 큰 도움이 될 수 있습니다. 여기에 많은 예제가 있습니다.

활동

다른 활동을 시작하는 활동은 다음과 같습니다.

public class CheatSheetActivity extends Activity는 OnClickListener를 구현합니다. {Button button1; static final String MY_ACTION = "com.allmycode.action"; static final String MY_URI = "my_scheme: my_scheme_specific_part"; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (레이아웃 메인); button1 = (버튼) findViewById (버튼 1); button1. setOnClickListener (this);} public void onClick (View arg0) {의도 의도 = 새 의도 (); 의지. setAction (MY_ACTION); 의지. setData (Uri. parse (MY_URI)); start activity (intent);}}

그리고 새로운 액티비티 클래스를 만들 때 AndroidManifest에 해당 엘리먼트를 추가해야한다. XML 파일. OtherActivity 요소의 인 텐트 필터는 다음과 같습니다.


활동에서 결과를 얻으려면 다음 코드 (또는 이와 비슷한 코드)를 앱에 추가하십시오.

final int CODE_NUMBER = 42; final String CLASSNAME = "CheatSheetActivity"; public void onClick (View arg0) {의도 의도 = 새로운 의도 (); 의지. setAction (MY_ACTION); 의지. setData (Uri. parse (MY_URI)); (코드 번호 == CODE_NUMBER) {로그.}}}}}}}}}}} 결과를 생성하는 활동에서 다음과 같은 종류의 코드를 추가하십시오.

의도 의도 = 새로운 의도 (); 의지. setData (Uri. parse ("result: hello"))); setResult (RESULT_OK, 인 텐트); 끝();
서비스

일반적으로 서비스는 사용자를 귀찮게하지 않고 (또는 심지어 알리는 것없이) 작업을 수행합니다. 예를 들어 주가 서비스가 웹에 도달하여 사용자가 좋아하는 선택의 최신 가격을 얻을 수 있습니다. 다른 앱의 활동은 서비스에서 데이터를 가져 와서 기기의 화면에 데이터를 표시 할 수 있습니다.

다음 코드는 완전하지만 매우 정확한 날씨 서비스입니다:

public class MyWeatherService extends Service {Messenger messengerToClient = null; MyIncomingHandler myIncomingHandler = 새로운 MyIncomingHandler (); 메신저 messengerToService = 새 메신저 (myIncomingHandler); @ public IBinder onBind (Intent intent) {messengerToService를 반환하십시오.클래스 MyIncomingHandler는 Handler를 상속받습니다. {@Override public void handleMessage (Message incomingMessage) {messengerToClient = incomingMessage. 답장하다; 번들 응답 = 새 번들 (); 댓글. putString ("weather", "밤에는 어두워."); 메시지 replyMessage = 메시지. 얻다(); replyMessage. setData (응답); {messengerToClient를 시도하십시오. send (replyMessage);} catch (RemoteException e) {e. printStackTrace ();}}}}

다른 패키지에서는 날씨 코드를 호출하는 코드를 넣습니다. 다음은 몇 가지 샘플 코드입니다.

public class ServiceConsumerActivity extends Activity 구현 OnClickListener {Messenger messengerToService = null; MyIncomingHandler myIncomingHandler = 새로운 MyIncomingHandler (); 메신저 messengerFromService = 새 메신저 (myIncomingHandler); ServiceConnection connection = 새 MyServiceConnection (); SharedPreferences prefs; boolean isBound = false; void bind () {의도 의도 = 새로운 의도 (); 의지. setAction ("com. allmycode. WEATHER"); isBound = bindService (intent, connection, Context.BIND_AUTO_CREATE);} public void queryService () {if (isBound) {번들 번들 = 새 번들 (); 묶음. putString ("location", "Philadelphia"); 메시지 메시지 = 메시지. 얻다(); 메시지. replyTo = messengerFromService; 메시지. setData (번들); {messengerToService. send (message);} catch (RemoteException e) {e. printStackTrace ();}} else {textView1. 클래스 MyIncomingHandler는 Handler를 확장합니다. {@Override public void handleMessage (Message msg) {번들 번들 = msg. setText (String. service_not_bound);} getData (); textView1. void unbind () {if (isBound) {unbindService (connection); setText (번들. getString ("날씨")); }} // MyServiceConnection은 ServiceConnection을 구현합니다. {public void onServiceConnected (ComponentName className, IBinder 바인더) {messengerToService = 새 메신저 (바인더)} public void onServiceDisconnected (ComponentName n) {messengerToService = null; 이 예제에서는 onCreate 메서드 또는 // onClick 메서드를 포함합니다.}

물론 매니페스트 파일에 요소가 없으면 응용 프로그램이 남아 있지 않습니다. 이 섹션의 서비스를 등록하려면 다음 종류의 요소가 필요합니다.

브로드 캐스트 리시버



브로드 캐스트를 수행 할 때 의도를 야생으로 내 보냅니다. 호환 가능한 인 텐트 필터가있는 브로드 캐스트 수신기는 브로드 캐스트 정보와 함께 유용한 기능을 수행합니다. (방송 정보를 가지고 뭔가를하고 나면 수신기는 다시 잠자기 상태로 돌아 간다. 다음 번 화신에서는 방송 수신기가되고 싶다.) 자신 만의 방송 수신기를 만들려면 Android의 BroadcastReceiver 클래스를 확장하고 onReceive 방법. 예를 들어 다음 코드는 일치하는 브로드 캐스트에 응답합니다.

public class MyReceiver extends BroadcastReceiver {@Override public void onReceive (Context context, Intent intent) {// 중요한 일}}

다음 분류 중 하나입니다:

Intent intent = new Intent (); 의지. setAction ("com. allmycode. ACTION"); sendBroadcast (인 텐트);

AndroidManifest에 브로드 캐스트 리시버를 등록 할 수 있습니다.xml 파일:

보다 융통성있게하려면 Java 코드에 수신기를 등록 할 수 있습니다. 다음 Java 코드는 AndroidManifest의 요소를 본질적으로 수행합니다. xml 파일은 다음을 수행합니다.

IntentFilter filter = new IntentFilter (); 필터. addAction ("com. allmycode. ACTION"); registerReceiver (새 MyReceiver (), 필터);


콘텐츠 제공 업체

앱의 콘텐츠 제공 업체는 동일한 기기에서 실행되는 다른 앱에서 데이터를 사용할 수있게합니다. 공급자의 인터페이스는 테이블, 행, 커서 및 모든 유용한 정보와 함께 데이터베이스의 인터페이스와 비슷합니다. 예를 들어, 컨텐츠 공급자를 쿼리하는 코드는 다음과 같습니다.

public Cursor query (Uri uri, String [] columns, String whereClause, String [] whereArgs, String sortOrder) {Cursor cursor = null; int code = uriMatcher. 경기 (uri); if (code == 1) {cursor = db. (string =) columnNames = { "_id", "name", "amount"}; (if, code, name, where, null, null, sortOrder); String [] rowValues ​​= { "Table", "4", "2"}; MatrixCursor matrixCursor = 새로운 MatrixCursor (columnNames); matrixCursor. addRow (rowValues);

프래그먼트

프래그먼트

는 뷰와 같습니다. 이는 액티비티 안에 표시 할 수있는 가시적 인 객체입니다. 그러나보기와 달리 단편에는 자체 라이프 사이클 메소드가 있습니다. 그래서 안드로이드는 액티비티 내부에 작은 조각의 조각을 만들 수 있습니다. 사용자가 뒤로 버튼을 누르면 안드로이드는 스택에서 조각을 팝합니다. (팝하는 조각이 없으면 Android는 작업 스택에서 전체 활동을 팝합니다.)

다음 프레임 레이아웃에 조각을 넣을 수 있습니다. 조각을 레이아웃에 배치하려면 조각 트랜잭션을 수행합니다. 조각 트랜잭션은 다음과 같습니다: DocsFragment docsFragment = DocsFragment. newInstance (index); FragmentManager fragmentManager = getFragmentManager (); FragmentTransaction fragmentTransaction = fragmentManager입니다. beginTransaction (); fragmentTransaction. replace (R. id. docs, docsFragment); fragmentTransaction. addToBackStack (null); fragmentTransaction. 범하다();

인 텐트 및 인 텐트 필터


인 텐트가 올바른 인 텐트 필터를 충족하면 결과는 하늘과 일치합니다. 그러나 필터와 인 텐트를 일치시키는 규칙은 복잡합니다. 규칙은 혼전 합의문의 법 조항과 같습니다.

Java 메소드를 사용하여 의도를 설명 할 수 있습니다. 다음은 자주 사용되는 메소드입니다:

setAction:

인 텐트의 액션을 설정합니다. (의도는 단 하나의 조치 만 가질 수 있습니다.)

addCategory:

  • 인 텐트에 카테고리를 추가합니다. (의도는 많은 카테고리를 가질 수 있습니다.) setData:

  • 인 텐트의 URI를 설정하고 인 텐트의 MIME 유형을 삭제합니다 (인 텐트에 MIME 유형이있는 경우). setType:

  • 인 텐트의 MIME 유형을 설정하고 인 텐트의 URI를 제거합니다 (인 텐트에 URI가있는 경우). setDataAndType:

  • 인 텐트의 URI와 인 텐트의 MIME 유형을 모두 설정합니다. 문서에 따르면 "이 방법은 거의 사용하지 않아야합니다. " XML 코드를 사용하여 의도를 설명 할 수도 있습니다.

  • URI http: // www.allmycode. com: 80 / android, 구성표는 http, 호스트는 www. allmycode. com, 포트 80, 경로는 android입니다. 권한 (요소의 속성 중 하나가 아니지만 대략 알고있는 것이 유용함)은 www입니다. allmycode. com: 80. 일반적으로 안드로이드 매니페스트에 인 텐트 필터의 값을 설정합니다. XML 파일. 하지만 자바 코드에서 안드로이드. 함유량. IntentFilter 클래스에는 유용한 메소드가 많이 있습니다. 다음은 그 중 일부입니다:

addAction:


필터에 액션을 추가합니다.

addCategory:

  • 필터에 카테고리를 추가합니다. addDataScheme:

  • 필터에 스킴을 추가합니다. addDataAuthority:

  • 필터에 권한을 추가합니다. addDataPath:

  • 필터에 경로를 추가합니다. addDataType:

  • MIME 유형을 필터에 추가합니다. 의도 필터는 많은 액션, 많은 카테고리 등을 가질 수 있습니다.

  • 다음은 인 텐트 필터와 인 텐트 필터가 일치하는 데 필요한 요구 사항의 간단한 목록입니다. 이 목록은 완전하지 않으므로 완전한 목록을 원하면 Barry Burd의

인형 용 Android 응용 프로그램 개발 올인원

을 구입하는 것이 좋습니다. 인 텐트에 액션이있는 경우 인 텐트를 일치 시키려면 인 텐트 필터가 동일한 액션을 가져야합니다. 인 텐트 필터는 추가 작업을 수행 할 수 있습니다. 이 추가 행동들 중 어떤 것도 경기에 영향을 미치지 않습니다. 인 텐트에 카테고리가있는 경우 인 텐트를 일치 시키려면 인 텐트 필터에 이러한 카테고리가 있어야합니다. 인 텐트에 MIME 유형이있는 경우 인 텐트를 일치 시키려면 인 텐트 필터가 일치하는 MIME 유형을 가져야합니다. 인 텐트 필터는 추가 MIME 유형을 가질 수 있습니다. 이러한 추가 MIME 유형은 일치에 영향을 미치지 않습니다. 인 텐트 필터에 MIME 유형이있는 경우 인 텐트 필터와 일치시키기 위해 인 텐트에는 MIME 유형이 있어야하며 인 텐트의 MIME 유형은 필터의 MIME 유형 중 하나와 일치해야합니다. 제한된 범위에서 MIME 유형의 일치에는 와일드 카드 및 정규 표현식이 포함될 수 있습니다. 인 텐트가 URI 스키마를 가지고있는 경우, 인 텐트 필터는 인 텐트와 일치시키기 위해 일치하는 URI 스킴을 가져야한다. 인 텐트 필터가 URI 스킴을 갖는 경우, 인 텐트 필터를 매치하기 위해 인 텐트는 URI 스킴을 가져야하고 인 텐트의 URI 스킴은 필터의 URI 스킴 중 하나와 일치해야한다. 이 목록을 완성하려면 마지막 두 규칙을 복사하여 각 복사본에서 한 단어 또는 두 단어를 변경하십시오.

  • 목적에 일치하는

  • 호스트

  • URI가있는 경우 인 텐트 필터는 일치하는 URI

  • 호스트

  • 를 가져야합니다.

  • 의도 필터가 의도 필터와 일치시키기 위해 URI

호스트

  • , 를 갖는 경우, 의도는 URI가 호스트 이고 인 텐트의 URI가 호스트 < 가 필터의 URI 호스트

  • 중 하나와 일치해야합니다. 의도가 URI 포트 , 인 텐트를 가지면 인 텐트 필터는 일치하는 URI 포트 를 가져야합니다. 인 텐트 필터가 URI 포트 ,

  • 를 가지고 인 텐트 필터와 일치하는 경우 인 텐트의 URI는 포트 이고 인 텐트의 URI 포트 < 는 필터의 URI 999 999 중 하나와 일치해야합니다.

  • 인 텐트의 URI가 경로 인 경우 인 텐트와 일치시키기 위해 인 텐트 필터는 일치하는 URI path 를 가져야합니다. 인 텐트 필터가 URI 경로 , 를 가지고 인 텐트 필터와 일치하는 경우 인 텐트는 URI path 및 인 텐트 URI

  • path

Android 애플리케이션 개발에 일반적으로 사용되는 코드 - 인형

편집자의 선택

소셜 미디어 측정법을 사용하여 판매를 늘리는 방법 - 소셜 미디어 측정 항목을 사용하는 한 회사

소셜 미디어 측정법을 사용하여 판매를 늘리는 방법 - 소셜 미디어 측정 항목을 사용하는 한 회사

판매를위한 크로스 플랫폼 참여는 Best Buy입니다. Best Buy는 모바일 쇼핑 및 소셜 쇼핑을 매장의 각 품목에 대한 QR 코드를 사용하여 매장 내 경험으로 가져 왔습니다. 고객은 상점의 각 항목에 대한 QR 코드를 스캔하여 리뷰를 포함한 더 많은 정보를 얻을 수 있습니다.

블로그에 Google 웹 로그 분석을 설치하는 방법 - 아직없는 경우

블로그에 Google 웹 로그 분석을 설치하는 방법 - 아직없는 경우

블로그 또는 사이트에서 Google 웹 로그 분석 추적 통계를 사용하여 빠르고 쉽게 설치할 수 있습니다. 설치는 1 분 밖에 걸리지 않으며 완전히 고통스럽지 않습니다. 먼저 Google 애널리틱스 ID를 가져 와서 어딘가에 작성하십시오. 쉽게 찾을 수 있습니다. Google 애널리틱스와 대시 보드에서 로그인하십시오.

웹 사이트에 Google 웹 로그 분석을 설치하는 방법 - 웹 사이트에 Google 웹 로그 분석을 설치하는

웹 사이트에 Google 웹 로그 분석을 설치하는 방법 - 웹 사이트에 Google 웹 로그 분석을 설치하는

단 1 분이며 고통스럽지 않습니다. 곧 Google 애널리틱스 덕분에 잠자는 동안 소셜 미디어 측정 항목을 추적하게 될 것입니다. 먼저 Google 애널리틱스 ID를 가져 와서 어딘가에 작성하십시오. 쉽게 찾을 수 있습니다. Google 애널리틱스 및 대시 보드에 로그인하고 톱니 바퀴 아이콘을 클릭하기 만하면됩니다. ...

편집자의 선택

마케팅 자동화에서 분할 테스트의 기본 이점 - A / B 테스트라고도하는 더미 테스트

마케팅 자동화에서 분할 테스트의 기본 이점 - A / B 테스트라고도하는 더미 테스트

다 변수 테스트뿐만 아니라 요인 일정을 유지하고 다양한 시나리오에서 다른 결과를 테스트하여 마케팅 자동화 테스트를 수행하는 것을 의미합니다. 하나의 유료 검색 광고를 통해 사람들을 2 개의 개별 방문 페이지로 유도하는 것이 그 예입니다. 방문 페이지 테스트하기 ...

자동화 된 마케팅을위한 컨텐츠 작성의 기본 - 인형

자동화 된 마케팅을위한 컨텐츠 작성의 기본 - 인형

마케팅 자동화 도구의 사용을 극대화하기 위해 먼저 사람과 콘텐츠와의 관계를 이해해야합니다. 올바른 사람에게 올바른 콘텐츠를 보내는 경우에만 자동화가 유용합니다. 이를 올바르게 수행하는 방법에 대한 기본적인 이해를 돕기 위해 사람들은 두 가지 유형이 관련되어 있음을 인식해야합니다 ...

Microsoft Dynamics CRM을 사용하는 e-Mail 및 Microsoft Dynamics CRM- 더미

Microsoft Dynamics CRM을 사용하는 e-Mail 및 Microsoft Dynamics CRM- 더미

고객 관계를 관리하는 데 도움이되는 Microsoft 도구 현대 직장에서 가장 유용한 도구 중 하나는 전자 메일이므로 전자 메일을 만들고 읽거나, 전자 메일을 특정 레코드에 연결하거나, 일정을 관리하는 데 숙련되어 있어야합니다. ...

편집자의 선택

웹 호스팅 계획에서 더 많은 것을 얻기위한 10 가지 팁 - 인형

웹 호스팅 계획에서 더 많은 것을 얻기위한 10 가지 팁 - 인형

당신은 자신의 웹 사이트 또는 블로그를 가지고 있고, 고객, 독자 또는 웹 호스팅 기술에 의존하는 추종자 만 있습니다. 다음 팁은 웹 호스팅 계획을 최대한 활용하는 데 도움이됩니다. 제어판에서 백업 옵션을 확인하십시오. 일부 제어판을 사용하면 자동화 된 백업을 수행 할 수 있습니다. ...

귀하의 웹 호스트가 귀하를 도와주지 않는 10 가지 사항 (무료) - 인형

귀하의 웹 호스트가 귀하를 도와주지 않는 10 가지 사항 (무료) - 인형

은 웹 호스트만큼 멋지고, 웹 사이트를 디자인, 제작 및 운영하는 데 도움이되는 일에는 한계가 있습니다. 그것은 모두 돈으로옵니다. 귀하가 기꺼이 지불하는 한 귀하의 호스트는 기꺼이 도움이 될 것입니다. 각 호스트는 다릅니다. ...