2012-12-19 18 views
5

Bir programda sizden yardım istedim ve işe yarayacak gibi görünüyor. Eğer iş parçacığı/asynctask çalışabilirim. Ben zaten iş parçacığı üzerinde çalışmaya çalıştım ve işe yaramadı. İş parçacığı yapmaya çalışmamın nedeni, yüklediğimde programım çöküyor ve temelde yapması gereken şey, birileri aradığında e-posta göndermektir, çünkü her zaman telefonumu yanlış kullanırsam veya sessiz kalırsam ve farkında değilim.Programım için iş parçacığı anlamama yardımcı olan var mı?

public class MainActivity extends Activity { 

    //Callservice callservice = new Callservice(); 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     startService(new Intent(this,Callservice.class)); 
    } 
    // your code here... 

ve emin olun: Etkinliğinizden hizmeti başlatılırken gelince

Hizmet-

public class Callservice extends Service { 

    PhoneStateListener listener; 
    TelephonyManager tm; 

    @Override 
    public void onCreate() 
    { 
      Toast.makeText(getApplicationContext(), "Service has started", Toast.LENGTH_LONG).show(); 
      listener = new MyphoneStateListener(); 
      tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
      tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE); 



    } 

     public class MyphoneStateListener extends PhoneStateListener 
     { 
      public void onCallStateChanged(int state, String incomingNumber) 
      { 
       switch (state) { 
        case TelephonyManager.CALL_STATE_IDLE: 
         break; 
        case TelephonyManager.CALL_STATE_RINGING: 
         sendemail(); 
         break; 
        case TelephonyManager.CALL_STATE_OFFHOOK: 
        default: 
         break; 
        } 
        super.onCallStateChanged(state, incomingNumber); 
       } 
      } 

      private void sendemail() 
      { 
       Intent i = new Intent(Intent.ACTION_SEND); 
       i.setType("message/rfc822"); 
       i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
       i.putExtra(Intent.EXTRA_SUBJECT , "phone is ringing"); 
       i.putExtra(Intent.EXTRA_TEXT , "email successfully sent"); 
       startActivity(Intent.createChooser(i, "send mail...")); 
       Toast.makeText(getApplicationContext(), "Email has been sent", Toast.LENGTH_LONG).show(); 

        try 
        { 
         startActivity(Intent.createChooser(i, "Send Email...")); 
        } 
        catch(android.content.ActivityNotFoundException ex) 
        { 

        } 
      } 


    @Override 
    public IBinder onBind(Intent arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

} 

Faaliyet-

public class MainActivity extends Activity { 


    Callservice callservice = new Callservice(); 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     callservice.onCreate(); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 
+1

LogCat ekleyin. –

+0

burada. http://pastebin.com/GnyKatuS – andyADD

+0

@ user1884552: Etkinliğiniz onCreate (MainActivity.java:26) nedir? –

cevap

4

Değişim MainActivity etkinliği Hizmetinizi AndroidManifest.xml içinde

<service android:name=".Callservice" /> 
İlgili konular