歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android設置全局變量&&啟動系統自帶應用程序

Android設置全局變量&&啟動系統自帶應用程序

日期:2017/3/1 10:51:50   编辑:Linux編程

.開發過程中有時不可避免的要使用全局變量.

之前的做法都是直接按照java的方式設置靜態變量public static int 來定義一個全局變量,後來發現這個值有時就莫名其妙的消失了.估計是隨activity生命周期或者Android回收機制給搞沒了.找到答案了.

另一個適合android的全局變量方法:

1.建一個全局類

  1. class MyApp extends Application {
  2. private String myState;//全局變量
  3. public String getState(){
  4. return myState;
  5. }
  6. public void setState(String s){
  7. myState = s;
  8. }
  9. }
2.調用時
  1. class Blah extends Activity {
  2. @Override
  3. public void onCreate(Bundle b){
  4. ...
  5. MyApp appState = ((MyApp)getApplicationContext()); //在任何地方調用時都這麼寫.
  6. String state = appState.getState();
  7. ...
  8. }
  9. }
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下查看.
Copyright © Linux教程網 All Rights Reserved