2014-12-18 3 views
0

저는 안드로이드 개발을 처음 접했고, 열 때 특정 번호로 텍스트를 보냈다가 자동으로 닫는 간단한 앱을 프로그래밍하려고했습니다. 응용 프로그램이 잘 작동하는 것을 제외하고는 3 SMS를 보내는 응용 프로그램을 실행할 때. 이 문제를 어떻게 해결하여 보낼 수 있습니까? 사전에안드로이드 앱이 3 번 실행됩니다.

package com.example.texter; 

import android.app.Activity; 
import android.os.Bundle; 
import android.telephony.SmsManager; 


public class MainActivity extends Activity { 

    protected void onCreate(Bundle savedInstanceState) { 

     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage("+11234567890", null, "message", null, null); 
     finish(); 

} 
} 

감사 : 여기 내 코드 (응용도 send_sms에 permision를 요청)입니다.

+0

어떻게이 '활동'을 시작 하시겠습니까? 'AndroidManifest.xml'에서 선언 한'MAIN''Activity'입니까? – Emmanuel

+5

프로세스를 중지하지 마십시오. 액티비티를'finish() '합니다. –

+0

가능한 중복의 [안드로이드 응용 프로그램을 프로그래밍 방식으로 종료] (http://stackoverflow.com/questions/6330200/how-to-quit-android-application-programmatically) - 솔루션은 dup이지만 문제는 약간 다릅니다. . –

답변

0

응용 프로그램 변수를 사용하여 메시지가 전송되었는지 여부를 제어 할 수 있습니다. 이는 파생 Application 클래스에 의해 수행과의 AndroidManifest.xml의 새로운 클래스를 지정할 수 있습니다

: 당신의 MainActivity에서

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" android:name=".MainApp" > 
..... 
</application> 

:

Application 클래스 :

public class MainApp extends android.app.Application { 
    public boolean isSent = false; 
} 

의 AndroidManifest.xml을

protexted void onCreate(Bundle savedInstanceState) { 
    MainApp ma = (MainApp)getApplication(); 
    if(!ma.isSent) { 
     // send sms 

     // then set the flag 
     ma.isSent = true; 
    } 

    finish(); 
} 
+0

덕분에 작동하고 텍스트 하나만 보냅니다. 하지만 지금까지 앱을 여는 순간 미안한 텍사스가 화면에서 멈췄다 고합니다. 어떤 제안? –

관련 문제