Android设置全局变量&&启动系统自带应用程序


.开发过程中有时不可避免的要使用全局变量.

之前的做法都是直接按照java的方式设置静态变量public static int 来定义一个全局变量,后来发现这个值有时就莫名其妙的消失了.估计是随activity生命周期或者Android回收机制给搞没了.找到答案了. 

另一个适合android的全局变量方法:

1.建一个全局类

  1. class MyApp extends Application {  
  2.   
  3.   private String myState;//全局变量   
  4.   
  5.   public String getState(){  
  6.     return myState;  
  7.   }  
  8.   public void setState(String s){  
  9.     myState = s;  
  10.   }  
  11. }  
2.调用时
  1. class Blah extends Activity {  
  2.   
  3.   @Override  
  4.   public void onCreate(Bundle b){  
  5.     ...  
  6.     MyApp appState = ((MyApp)getApplicationContext()); //在任何地方调用时都这么写.   
  7.     String state = appState.getState();  
  8.     ...  
  9.   }  
  10. }  
3.最后别忘了.在你的 AndroidManifest.xml 加上android:name  (不是新建<application>标签哦.)
  1. <application android:name=".MyApp"   
  2.        android:icon="@drawable/icon"   
  3.        android:label="@string/app_name">  

二.通过包名启动程序.

我们知道要调用一个程序,要知道一个程序的包名和Activity名.比如调用短信时

  1. Uri smsUri = Uri.parse("tel:10086");  
  2. returnIt = new Intent(Intent.ACTION_VIEW, smsUri);  
  3. returnIt.putExtra("sms_body""yyyy");  
  4. returnIt.setType("vnd.android-dir/mms-sms");  

但是有时要启动一些山寨手机自带的系统软件时.你不知道Activity名.就可以直接用包名启动系统自带的程序.

  1. Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.xxxxxxx");  
  2. if(intent!=null)startActivity(intent);  
关于如何查看系统自带程序的报名可以在目录 system/app下查看.

相关内容