在类中使用不扩展活动的意图

时间:2014-01-04 05:32:53

标签: android

人们对此有点困惑。我正在使用从一个活动到另一个活动的意图,这是完美的工作,这里是创建问题的代码

    package com.furniture;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.telephony.SmsMessage;
    import android.util.Log;
    import android.widget.Toast;


    public class smsreciever extends BroadcastReceiver
    {

        public String value;    
        @Override
        public void onReceive(Context context, Intent intent) 
        {

            //---get the SMS message passed in---
            Bundle bundle = intent.getExtras();        
            SmsMessage[] msgs = null;
            String str = "";
            String info="";
            if (bundle != null)
            {
                //---retrieve the SMS message received---
                Object[] pdus = (Object[]) bundle.get("pdus");
                msgs = new SmsMessage[pdus.length];            
                for (int i=0; i<msgs.length; i++){
                    msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
                    str += "SMS from " + msgs[i].getOriginatingAddress();                     
                    str += " :";
                    str += msgs[i].getMessageBody().toString();
                    info=msgs[i].getMessageBody().toString();
                    str += "\n";        
                }
                //---display the new SMS message---
    //        Intent i1=new Intent();
                //((Gloabal)this.get).setData(str);
                Gloabal.setData(info);
                //Gloabal g1=new Gloabal();
                //Global g = (Global)getApplication();
                //int data=g.getData();
                //String temp=Gloabal.getData();

                Log.v("sanketh","smsreciver value of str:"+str);
                //int a=1;
                //Log.v("sanketh","global value :"+temp);
                //g1.setData(str);
                Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
                String ref=Gloabal.getData();
                if(ref!=null)
                {


                Log.v("sanketh","value of refer="+ref);

                if(ref.equals(info))
                {
                    Log.v("sanketh","value =1");
                    Intent i1=new Intent(context,login.class);
                    i1.putExtra("confirm", info);
                //  startActivityForResult(i1, 0);
                    startActivity(i1);
                    //Toast.makeText(Context, "mathces", 5).show();
                }else
                {
                    Log.v("sanketh","value =2");
                    //Toast.makeText(con, "doesnot match", 5).show();

                }
                }
            }                         
        }
    }

startActivity(i1); //这行正在创建错误,说这个smsreceiver类的方法是未定义的,现在问题看起来是,是否需要在扩展活动类的类中调用?它是必需的吗?或者我们可以在任何一个班级中调用它吗?在某些班级中我没有作为争论的观点,所以我的时间不足以满足某些功能所需的争论,如吐司或意图。

2 个答案:

答案 0 :(得分:3)

我的朋友非常简单。只需以这种方式使用此意图:

Intent i1 = new Intent(context, login.class);  
i1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i1);

我认为你能够解决问题。

享受!!

我的答案会帮助你,然后不要忘记支持。 :)

答案 1 :(得分:1)

使用context.startActivity(i1);

您可以使用从Activity类传递的context来调用另一个活动